【发布时间】:2017-03-23 03:37:00
【问题描述】:
我正在尝试将=LOWERCASE() 公式应用于同一工作簿中跨多个工作表的四列(J、O、T 和 Y)。
这是我目前拥有的 VBA 代码,它适用于正确的列,但每个列都返回错误。
Sub Clean_Lowercase()
Const N As Integer = 1
Dim r As Long, i As Integer, X As Integer, t As Long
Dim rng As Range, r As Range
Dim v As Variant
v = Array("J", "O", "T", "Y")
t = 1
For i = 1 To Sheets.Count - 1
r = Sheets(i).UsedRange.Rows.Count
For X = 0 To UBound(v)
Set rng = Sheets(i).Range(v(X) & N & ":" & v(X) & r)
For Each r In rng
r.Formula = "=LOWERCASE()"
Next
Next
End Sub
我是 VBA 编码的新手,非常感谢任何建议!我真的很想学习。
非常感谢!
【问题讨论】:
-
您正在尝试插入一个公式,该公式将用实际公式覆盖数据,并且该公式需要参考。如果您尝试将单元格中的数据更改为小写,那么
r.Value = Lcase$(r.Value) -
啊,好吧!我应该插入
r.Value = Lcase&(r.Value)来代替r.Formula吗? -
是的,但它是
Lcase$(r.Value) -
糟糕,是的,
$而不是&。感谢您的捕获!我尝试运行,它提示r As Range? 的“编译错误:当前范围内的重复声明”? -
什么是小写公式 - 它是最近添加的吗?
标签: excel excel-formula vba