我正在尝试在工作簿中编写一个宏,其目的是显示每组excel文件中的密钥信息。第一列包含将在代码中使用的文件的名称。
我到目前为止编写的代码应循环遍历摘要表中的11个文件名列表,并从每个文件中的单元格E21中提取信息,并将其放在摘要表中的单元格Hx中。
到目前为止,我没有运气,我的第一个错误就是#34;无效的资格赛"在线上说" MySheet"。我知道这里有很多其他的错误,因为我从来没有尝试过从其他封闭的工作簿中提取的子文章。
我的代码如下:
Option Explicit
Sub OEEsummmary()
Dim Gcell As Range
Dim Txt$, MyPath$, MyWB$, MySheet$
Dim myValue As Integer
Dim x As Long
Dim v As Variant, r As Range, rWhere As Range
MyPath = "L:\Manufacturing Engineering\Samuel Hatcher\"
x = 2
MySheet = ActiveSheet.Name
Application.ScreenUpdating = False
Do While MySheet.Range("A" & x).Value <> ""
MyWB = MySheet.Range("A" & x).Txt
Workbooks.Open Filename:=MyPath & MyWB
Set Gcell = ActiveSheet.Range("E21")
With ThisWorkbook.ActiveSheet.Range("A" & x)
.Value = "Item"
.Offset(7, 0).Value = Gcell.Value
End With
ActiveWorkbook.Close savechanges:=False
x = x + 1
Loop
End Sub
我看过无效的限定符错误是什么,我不明白我的代码部分有什么问题。任何有关这个和任何其他致盲错误的帮助将不胜感激!
答案 0 :(得分:2)
我发现导致Invalid Qualifier
错误的问题是您将MySheet
声明为字符串,但尝试将其用作Worksheet
对象。下面我已将其声明为工作表并将其设置为Activesheet
。我还将ThisWorkbook.ActiveSheet
引用更改为MySheet
,我认为这是您想要的。还将Txt
更改为Text
:
Sub OEEsummmary()
Dim Gcell As Range
Dim MySheet As Worksheet
Dim Txt$, MyPath$, MyWB$
Dim myValue As Integer
Dim x As Long
Dim v As Variant, r As Range, rWhere As Range
MyPath = "L:\Manufacturing Engineering\Samuel Hatcher\"
x = 2
Set MySheet = ActiveSheet
Application.ScreenUpdating = False
Do While MySheet.Range("A" & x).Value <> ""
MyWB = MySheet.Range("A" & x).Text
Workbooks.Open Filename:=MyPath & MyWB
Set Gcell = ActiveSheet.Range("E21")
With MySheet.Range("A" & x)
.Value = "Item"
.Offset(7, 0).Value = Gcell.Value
End With
ActiveWorkbook.Close savechanges:=False
x = x + 1
Loop
End Sub