Access-VBA检查打开的Excel工作簿中的单元格是否为空,然后复制该行

这是我第一次在这里问一个问题。

我遇到了一个问题,我需要将某个行从一个工作簿复制到另一个工作簿。 复制部分,我相信我可能已经解决了,但我的问题是非常简单的事情。

要确定要复制哪些行,我必须查看第一个工作簿中的4个date,一个与他们检查我遇到麻烦是检查单元格是否为空。 由于每次运行我的代码时都会在检查时出现不匹配的错误13。

Dim XX As Excel.Application ----secondary workbook Dim ws1 As Object Dim ws As Object Set XX = New Excel.Application XX.DisplayAlerts = False Set ws1 = XX.Workbooks.Add ws1.Activate Set ws = ws1.ActiveSheet Set xl = New Excel.Application ----primary workbook xl.DisplayAlerts = False Set wb = xl.Workbooks.Open(FilePath) For i = 2 To wb.Sheets("SHEET1").Range("Q65536").End(xlUp).Row --- i have the code looping through all rows of the primary workbook Date1 = wb.Sheets("SHEET1").Cells(i, 12).Text Date2= wb.Sheets("SHEET1").Cells(i, 14).Text Date3= wb.Sheets("SHEET1").Cells(i, 13) Date4 = wb.Sheets("SHEET1").Cells(i, 15) ----- everything up to here has no errors If ((CDate(Date1) < Date) & (IsEmpty(Date3))) Then ---- error is always here, at Date3 wb.Rows(i).Copy ws.Rows(ws.Cells(ws.Rows.Count, 2).End(xlUp).Row + 1) end if 

wb是我从中获取数据的主要工作簿(希望),ws是我正在复制的工作簿。

我知道这个错误是特别在if语句中的空检查,因为我已经把它拿出来,只留下less于检查和代码进展的预期。 我只是无法弄清楚如何解决这个问题。

我已经为string,整数,date和variables的所有内容声明了datevariables。 并尝试导入单元格值作为范围和单元格与.text或.value或什么也没有。 然后在if语句中,我尝试了在CDate中添加IsEmpty,Isnull,=“”,= 0,= null。 我已经从字面上考虑了所有可能的组合。

你可以尝试:

  Date3 = trim(wb.Sheets("SHEET1").Cells(i, 13)) ....IsNull(Date3) 

这里的想法是先修剪空白,然后检查空值。

希望这可以帮助 :)

Brain M Stafford在评论中回答。