#价值!使用 Evaluate Index 引用单个单元格范围时出错

#VALUE! error referencing single cell range with Evaluate Index

我想将 Excel 中的选定范围转换为大写。 这是我的代码

Dim rng As Range
Set rng = Selection
rng.Value = rng.Parent.Evaluate("INDEX(UPPER(" & rng.Address & "),)")

它适用于大范围,但给出了#VALUE!仅选择单个单元格时出错。

此代码适用于单个单元格或所选内容:

Sub ChangeCellCase()

Dim CellCase

   For Each CellCase In Selection
      CellCase.Value = UCase(CellCase.Value)
   Next

End Sub
  1. 如果您选择了整列或整行,请将您的选择缩小到已使用的范围。
  2. 如果您只选择了一个单元格,则处理一个单元格;批量处理任何多个单元格选择。

    Dim rng As Range
    Set rng = Intersect(Selection, Selection.Parent.UsedRange)
    If rng.Cells.Count > 1 Then
        rng.Value = Application.Evaluate("INDEX(UPPER(" & rng.Address & "),)")
    Else
        rng = UCase(rng.Value)
    End If