Excel使用单元格值作为VBA中的范围

我有一个Excel文件。 A列每次都有一个可更改的行数量,这就是为什么我需要dynamic公式。 例如;

我想在B1上写“= LEN(B1)”公式。 在单元右下angular双击时,直到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中使用单元格值作为范围或string或数字。

感谢您的支持。

两个注释:

  1. 事先总是限定您的对象(工作簿,工作表,范围等)是最好的做法
  2. 使用R1C1表示法时,只需将公式直接写入范围(不需要AutoFillAutoFill 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确实是一个数值的情况下才会起作用:)