我有一个excel文件。 A列每次都有一个可变的行数,这就是我需要制作动态公式的原因。例如;
我想在B1上写“= LEN(B1)”公式。当双击单元格的右下角时,它将一直结束,直到A列值结束。这就是为什么在所有这个过程之前,我在单元格C1上写了“= COUNT(A:A)”。
在我的VBA中,我想写;
Dim TEMP As String
TEMP = Range("C1").Value
Range("B1").Select
ActiveCell.FormulaR1C1="=+LEN(RC[-1])"
Selection.AutoFill Destination:=Range("B1:TEMP")
但是这个过程有问题。因此,我只想在我的VBA中使用单元格值作为范围或字符串或数字。
感谢您的支持。
答案 0 :(得分:1)
两个注释:
R1C1
表示法时,您可以直接将公式编写到范围内(不需要AutoFill
或FillDown
)试试这个:
Dim ws as Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") 'edit for your sheet name
Dim lRow as Long
lRow = ws.Range("A" & ws.Rows.count).End(xlup).Row
ws.Range("B1:B" & lRow).FormulaR1C1 = "=Len(RC[-1])"
正如值得一提的那样,你写Range("B1:TEMP")
的方式不是正确的语法。正确的语法是Range("B1:B" & TEMP)
,当然,只有当TEMP
确实是一个数值时才会有效:)