第一次发帖,所以如果有任何格式或我未能遵守的准则,请告诉我,以便我修复它。
所以我基本上是在向用户询问excel文件的文件目录,然后我设置了一些变量(最初在公共设置为项目变量,因为这些在其他地方被使用和更改)。我还添加了将这些变量设置为空的行(以防万一,我认为这无关紧要)。然后,我将这些变量设置为我想要访问的 Excel 文件、工作簿和工作表。
Dim filepath as String
filePath = CStr(fileDialog) 'ask file dir, set to string
Dim sourceXL As Variant 'these three were orig project variables
Dim sourceBook As Variant
Dim sourceSheet As Variant
Dim sourceSheetSum As Variant
Set sourceXL = Nothing 'set to nothing in case...?
Set sourceBook = Nothing
Set sourceSheet = Nothing
Set sourceSheetSum = Nothing
Set sourceXL = Excel.Application 'set to the paths needed
Set sourceBook = sourceXL.Workbooks.Open(filePath)
Set sourceSheet = sourceBook.Sheets("Measurements")
Set sourceSheetSum = sourceBook.Sheets("Analysis Summary")
Dim measName As Variant 'create variable to access later
Dim partName As Variant
sourceSheetSum.Range("C3").Select 'THIS IS THE PROBLEM LINE
measName = sourceSheetSum.Range(Selection, Selection.End(xlDown)).Value
sourceSheetSum.Range("D3").Select
partName = sourceSheetSum.Range(Selection, Selection.End(xlDown)).Value
所以我创建了两个不同的工作表变量'sourceSheets'和'sourceSheetsSum',如果我使用'sourceSheets',代码可以工作,但如果我使用'sourceSheetsSum',则会出现错误1004。我还尝试了完全删除变量“sourceSheet”的代码,以防由于某种原因覆盖了“sourceSheetSum”。
我相当有信心excel工作簿和工作表存在并且被正确调用,因为我运行了一些代码来循环遍历工作簿中的所有工作表并输出名称,如下所示。
For j = 1 To sourceBook.Sheets.Count
Debug.Print (Sheets(j).name)
Next j
随着调试输出
测量
分析汇总
分析设置
那么,有没有人知道这个错误可能意味着什么,或者我如何才能找到更多关于错误实际是什么的信息?
编辑:所以我决定在工作表名称列表中添加一些内容,不确定它是否会有所帮助。
For j = 1 To sourceBook.Sheets.Count
listSheet(j) = Sheets(j).name
Next j
Debug.Print (listSheet(2))
Set sourceSheetSum = sourceBook.Sheets(listSheet(2))
调试打印分析摘要,所以我知道工作表中存在工作表,名称中的“错字”不应该有任何问题。
虽然代码在同一行仍然有相同的错误。
deusxmach1na: 我想你想让我改变
Dim sourceXL As Variant
Dim sourceBook As Variant
Dim sourceSheet As Variant
Dim sourceSheetSum As Variant
Set sourceSheet = sourceBook.Sheets("Measurements")
到
Dim sourceXL As Excel.Application
Dim sourceBook As Excel.Workbook
Dim sourceSheet As Worksheet
Dim sourceSheetSum As Worksheet
Set sourceSheet = sourceBook.Worksheets("Measurements")
但这并没有改变错误,我记得我有类似的错误,然后改变了它,因为我读到那个变体就像一个包罗万象的东西,实际上并没有那么确定变体是什么。