如何使用VBA更新合并单元格中的文本?

时间:2011-11-17 20:32:05

标签: excel-vba excel-2007 vba excel

假设我有两个合并的单元格,请说Sheet1!$A$1:$B$1

并且假设有一段文本以两个单元为中心。如何使用VBA以编程方式更新该值?我有一个带按钮的简单用户表单,点击按钮,我希望单元格更新。

我试过抓住Range,但这似乎不起作用。

4 个答案:

答案 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