我正在尝试在VBA中自动定义工作表名称。
这是我创建的代码:
Range("F7:F11").Select
Selection.Copy
Sheets("janeiro").Select
Range("F7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
基本上,我需要单元格b2中的内容来定义工作表的名称。在这个例子中,工作表的实际名称是“janeiro”,但我需要由单元格b2的内容定义名称。
例如,February, March...
以自动方式完成。
这可能吗?
答案 0 :(得分:3)
替换" janeiro"与Range("B2").Value
。
然后,将您的代码稍微加强到avoid using Select
methods:
Range("F7:F11").Copy
Sheets(Range("B2").Value).Range("F7").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
注意:如果指定的工作表名称不存在,则会引发错误。
或者......这将是一个很好的机会向您展示如何使用变量,而不是显式引用:
Dim shName as String 'Defines a STRING variable which we will use to hold a sheet name
shName = Range("B2").Value
'## Now, we can simply refer to shName any time we need to refer to the value in "B2"
Range("F7:F11").Copy
Sheets(shName).Value).Range("F7").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False