这是我第一次在这里提问。
我遇到了一个问题,我需要将某些行从一个工作簿复制到另一个工作簿。复制部分我相信我可能已经解决但我的问题是非常简单的事情。
要确定要复制哪些行,我必须查看第一个工作簿中的4个日期,使用它们进行检查我遇到的问题是检查单元格是否为空。每次运行代码时,检查都会出现不匹配错误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语句中的空检查时,因为我已经取出它并且只留下了少于检查和代码按预期进展。我只是无法弄清楚如何解决它。
我已经为字符串,整数,日期和变体声明了所有内容的日期变量。并尝试使用.text或.value或任何内容将单元格值作为范围和单元格导入。然后在if语句中我尝试了Iscmp,Isnull,=&#34;&#34;,= 0,= null,在CDate中添加。我完全按照我能想到的每种可能的组合尝试了所有的东西。
答案 0 :(得分:0)
你可以尝试:
Date3 = trim(wb.Sheets("SHEET1").Cells(i, 13))
....IsNull(Date3)
这里的想法是首先修剪空格,然后检查空值。
希望这会有所帮助:)
答案 1 :(得分:0)