vba: 如何在非活动工作表中更改新添加的工作簿的名称?
vba: How can I change the name of a new added workbook in an inactive worksheet?
With Swkbook.Worksheets("SalesRecords")
For intIndex = 1 To .Range("D1", .Range("D1048576").End(xlUp)).Rows.Count - 1
strNewName = .Range("d2").Offset(intIndex - 1, 0).Value
Namesexist = False
For Each wksheet In Nwkbook.Worksheets
If VBA.LCase(strNewName) = VBA.LCase(wksheet.Name) Then
Namesexist = True
End If
Next wksheet
If namesexits = False Then
Set WS = Nwkbook.Worksheets.Add
Worksheets(WS).Name = strNewName
End If
Next intIndex
End With
我正在处理一个名为 "abc" 的活动工作簿,还有另外两个名为 "S" 和 "N" 的工作簿。
现在我想让S中的D行值作为N中每个新工作表的名称(不重复)
以上是我的代码,但是,这条语句报错:
Worksheets(WS).Name = strNewName
Type mismatch.
你能帮我解决这个问题吗?谢谢。
我在with语句之前声明了变量:
Dim intIndex As Integer
Dim strNewName As String
Dim Namesexist As Boolean
但我现在收到另一个错误:
来自:
WS.Name = strNewName
执行此行后
Set WS = Nwkbook.Worksheets.Add
WS
是一个 Worksheet 对象,它包含对刚刚添加的新工作表的引用。然后您可以像这样更改它的名称:
WS.Name = strNewName
事实上,我建议您使用 Dim
正确声明您的变量
Dim WS As Worksheet
出于数百万种不同的原因,这是一个好主意,其中之一是您可以使用自动完成功能轻松查看您可以对对象执行的操作:
With Swkbook.Worksheets("SalesRecords")
For intIndex = 1 To .Range("D1", .Range("D1048576").End(xlUp)).Rows.Count - 1
strNewName = .Range("d2").Offset(intIndex - 1, 0).Value
Namesexist = False
For Each wksheet In Nwkbook.Worksheets
If VBA.LCase(strNewName) = VBA.LCase(wksheet.Name) Then
Namesexist = True
End If
Next wksheet
If namesexits = False Then
Set WS = Nwkbook.Worksheets.Add
Worksheets(WS).Name = strNewName
End If
Next intIndex
End With
我正在处理一个名为 "abc" 的活动工作簿,还有另外两个名为 "S" 和 "N" 的工作簿。
现在我想让S中的D行值作为N中每个新工作表的名称(不重复)
以上是我的代码,但是,这条语句报错:
Worksheets(WS).Name = strNewName
Type mismatch.
你能帮我解决这个问题吗?谢谢。
我在with语句之前声明了变量:
Dim intIndex As Integer
Dim strNewName As String
Dim Namesexist As Boolean
但我现在收到另一个错误:
来自:
WS.Name = strNewName
执行此行后
Set WS = Nwkbook.Worksheets.Add
WS
是一个 Worksheet 对象,它包含对刚刚添加的新工作表的引用。然后您可以像这样更改它的名称:
WS.Name = strNewName
事实上,我建议您使用 Dim
Dim WS As Worksheet
出于数百万种不同的原因,这是一个好主意,其中之一是您可以使用自动完成功能轻松查看您可以对对象执行的操作: