这是我在这里发表的第一篇文章,之前我只做了非常有限的vba,所以请原谅任何错误!
我想用相对于每个单元格的公式替换大量单元格的内容。
单元格都在同一列中,并且当前包含一个不同的公式,我想用新公式替换它。
到目前为止,我已经能够选择细胞了,但用公式替换内容已经躲过了我! (下面有比下面更多的单元格,这只是一个例子)。
这是我到目前为止所得到的:
Sub SelectSpecificCells()
'selects all cells needing change
Union(Range("A2, A5, A8, A11"), Range("A14, A17")).Select
End Sub
我想选择以下单元格:
A2, A5, A8, A11, A14, A17
并将其内容更改为: = B2,= B5,= B8,= B11,= B14,= B17
感谢您的帮助
答案 0 :(得分:0)
这非常特定于您的示例,但也许您可以将其修改为您实际需要的内容。 A2将具有公式" = $ B $ 2"。此代码将放在工作表模块中。如果您想要在常规模块中使用它,则必须更改" Me"引用工作表对象或活动表。
Sub test()
Dim specificCells As Range
Dim cell As Range
Set specificCells = Union(Me.Range("A2, A5, A8, A11"), Me.Range("A14, A17"))
For Each cell In specificCells
cell.Value = "=" & cell.Offset(0, 1).Address
Next
End Sub
评论后的新方法,根据需要调整列:
Sub test()
Dim row As Long
Dim maxRow As Long
row = 2
maxRow = 17
Do Until row > maxRow
Me.Cells(row, 1).Value = "=" & Me.Cells(row, 2).Address
row = row + 3
Loop
End Sub
答案 1 :(得分:0)
试试这个:
Sub test()
Dim specificCells As Range
Set specificCells = Union(Sheet4.Range("A2, A5, A8, A11"), Sheet4.Range("A14, A17"))
specificCells.FormulaR1C1 = "=INDIRECT(""RC[1]"",FALSE)"
End Sub