在 Excel VBA 中使用“工作表名称”而不是“选项卡名称”

在 Excel VBA 中使用“工作表名称”而不是“选项卡名称”

(如何在 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 列。

相关内容