假设我有两个合并的单元格,请说Sheet1!$A$1:$B$1
。
并且假设有一段文本以两个单元为中心。如何使用VBA以编程方式更新该值?我有一个带按钮的简单用户表单,点击按钮,我希望单元格更新。
我试过抓住Range,但这似乎不起作用。
答案 0 :(得分:14)
除了其他答案之外,值得注意的是,您还可以使用MergeArea
通过任一单元格进行更新:
Range("A1").MergeArea.Value="New value"
Range("B1").MergeArea.Value="New value"
如果单元格未合并,那么它将忽略MergeArea(即它将其视为与一个单元格的合并区域...)
答案 1 :(得分:6)
如果已合并单元格,则只能通过引用左上角的单元格来编辑合并单元格的值。
因此,如果A1和B1合并,更改日期的唯一方法是:
Range("A1").value = "data"
或
Cells(1,1).Value = "data"
调用Range("B1").Value = "data"
不会更改可见文字。
答案 2 :(得分:0)
您可以设置第一个单元格的值,它将更新文本。
Worksheets("Sheet1").Cells(1,1).Value = "New Value"
答案 3 :(得分:0)
如果您需要引用可能属于或可能不属于合并范围的单元格,请使用此功能:
Function Reference_cell_even_if_merged(Cell_Range As Range) As Range
If Cell_Range.MergeCells Then
Set Reference_cell_even_if_merged = Cell_Range.MergeArea
Else
Set Reference_cell_even_if_merged = Cell_Range
End If
End Function