获取消息框中可变单元格的单元格值

时间:2013-02-18 10:30:41

标签: vba messagebox

我有一张名字和技能的表格,其中1表示“你没有这种技能”,3表示“你有这种技能”。当我将它从1更改为3时,你会得到一个msgbox说:你确定要这样做吗?我想要msgbox中的名字和技能,但不知道如何。

所以例如我将单元格D12从1更改为3.消息应该说:

您确定要更改(单元格D1的值/技能)(单元格A12的值/人名)

没关系。但它适用于活动单元,因此D1和A12根据哪个单元处于活动状态而变化。我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用R1C1 Reference Style。在这种情况下,您必须将Excel的设置切换为R1C1参考样式:

Office 2007 中,点击 Office 按钮,然后点击退出Excel < 附近的 Excel选项 /强>

转到公式标签,然后在使用公式下,选中 R1C1参考样式以使用它。

如果您在=R[2]C[1]单元格中指定A1之类的公式,它会从B3单元格返回一个值。

第二种方法是使用以下公式:

=OFFSET(INDIRECT(ADDRESS(ROW(), COLUMN())),2,1)

在这种情况下,您不必更改任何设置

修改

我试过你的例子。如果你想通过使用VBA实现这一目标,那就更容易了:

Dim skillValue As String
skillValue = Range(Cells(1, Selection.Column), Cells(1, Selection.Column))
Dim nameValue As String
nameValue = Range(Cells(Selection.Row, 1), Cells(Selection.Row, 1))
If MsgBox("Are you sure you want to change " & skillValue & " of " & nameValue & "?", vbOKCancel) = vbOK Then
...............