这是我第一次在这里问一个问题。
我遇到了工作中的一个问题,我需要将某些行从一个工作簿复制到另一个工作簿。我相信我可能已经解决了复制部分,但我的问题是非常简单的东西。
要确定第一个工作簿中必须查看的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语句中,我尝试了Isempty,isnull,=",= 0,= null,在CDATE中添加。我从字面上尝试了所有可能想到的组合。
您可以尝试:
Date3 = trim(wb.Sheets("SHEET1").Cells(i, 13))
....IsNull(Date3)
这里的想法是先修剪空格,然后检查空值。
希望这会有所帮助:(