(如何在 Excel VBA 中使用工作表名称而不是选项卡名称)?
如何将选项卡的名称(“电气”)替换为实际的工作表名称(工作表 11)?每当我这样做时,它都不起作用,下面是有效的代码,只需使用工作表名称即可:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) With Target
If .Address(False, False) = "D107" Then
If IsEmpty(.Value) Then
Application.EnableEvents = False
.Formula = "=Electrical!I181"
Application.EnableEvents = True
End If
End If
此代码放置在活动工作表中,它只是从另一个选项卡“电气”选项卡(单元格 I181)输入单元格引用,除非目标单元格 (D107) 已经有值(非空白)。如果我清除(删除)目标单元格 (D107) 中的值,它应该再次输入。
任何帮助都将非常有帮助 — — 非常感谢!
答案1
公式必须引用选项卡名称,但您可以从代码名称中获取选项卡名称。
.Formula = "=" & Sheet11.Name & "!I181"
当输入到工作表时,它仍会显示,就=Electrical!I181
好像代码运行时调用了 Sheet11 一样。
如果在 Sheet11 上输入公式,则只需使用:
.Formula = "=I181"
您还可以使用:
.FormulaR1C1 = "=" & Sheet11.Name & "!R181C9"
这指向第 181 行,第 9 列。