我目前正在编写一个宏,该宏应采用特定excel工作簿和工作表的内容,然后将其复制到其他工作簿中的另一个工作表中。
不太困难,但是我遇到的问题是我尝试从中提取信息的工作表具有两个名称之一。它们是Sheet1
或T Points to Measure
。
我尝试使用的当前修订(可能不是最好的)是检查工作表是否具有名称T Points to Measure
。如果可以,那么我想将其更改为Sheet1
,因此所有工作表应具有相同的名称。
我当前要使用的代码如下:
Let Copyrange = "T - ATKB000" & serialno & " Ply Count Request"
Set wb2 = Workbooks(Copyrange)
wb2.Activate
If wb2.Worksheet.Name = "T Points to Measure" Then
wb2.Worksheet.Name = "Sheet1"
End If
Set ws2 = wb2.Sheets("Sheet1")
但是我遇到了错误:
Run-time error '438':
Object doesn't support this property or method
答案 0 :(得分:3)
您的错误发生在以下代码行上:
If wb2.Worksheet.Name = "T Points to Measure" Then
具体在wb2.Worksheet
。这是无效的vba语法,因为Worksheet
对象上没有Workbook
方法或属性。
您需要一个Worksheets
属性。为了访问单个工作表,您需要使用带有索引的Worksheets
语法或在工作簿中的每个工作表中循环并分别检查名称。下面的if语句将正确运行,但是有点多余。
If wb2.Worksheets("T Points to Measure").Name = "T Points to Measure" Then