我正在尝试在 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 的内容定义该名称。
例如,二月、三月...
以自动方式完成。
这可能吗?
最佳答案
将“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
关于vba - 自动定义工作表名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23830328/