我是论坛的新手,也是VBA的新手(一周前才开始学习)。
是否可以在变量中定义属性?我有一行看起来像这样:
Cells(i, j).Formula = "=" & .Cells(i, j).Address(External:=True, RowAbsolute:=False, ColumnAbsolute:=False)
我必须写几个单元格,所以我最终得到了很多这些单元格;如果可能的话,我想做类似的事情:
dim prop as string
prop = "Address(External:=True, RowAbsolute:=False, ColumnAbsolute:=False)"
Cells(i, j).Formula = "=" & .Cells(i, j).prop
可以这样做吗?
答案 0 :(得分:1)
你的意思是这样吗?
Function MyProp(ByVal r as Range) as String
MyProp = r.Address(External:=True, RowAbsolute:=False, ColumnAbsolute:=False)
End Function
...
Cells(i,j).Formula = "="& MyProp( Cells(i,j) )
这当然是一个单元格引用本身,这通常是一个坏主意,可能会导致循环引用。如果你更多地描述你想要做的事情以获得更好的答案,那就最好。
答案 1 :(得分:0)
正如评论中所提到的,这不能以你描述的方式完成。有两种选择:
为所有单元格写一个循环,从A1到最后使用的行,最后一次使用的列:
Dim LastRow As Long, LastCol As Long
LastRow = Range("A" & Rows.Count).End(xlUp).Row
LastCol = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To LastRow
For j = 1 to LastCol
`Do your stuff here
Next j
Next i
编辑:
我假设您需要投资Range.Offset()
方法found here,因为现在,您正在设置单元格的公式等于它自己...