首页 文章

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

提问于
浏览
0

我有一个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中使用单元格值作为范围或字符串或数字 .

感谢您的支持 .

1 回答

  • 1

    两个笔记:

    • 最好始终事先确定对象(工作簿,工作表,范围等)的合格性

    • 当您使用 R1C1 表示法时,您可以直接将公式写入范围(不需要 AutoFillFillDown

    试试这个:

    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 确实是一个数值时才会起作用:)

相关问题