自动定义工作表名称

时间:2014-05-23 13:19:22

标签: excel vba excel-vba

我正在尝试在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...以自动方式完成。

这可能吗?

1 个答案:

答案 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