访问-VBA检查在复制行之前,打开的Excel工作簿中的单元格是否为空



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

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

要确定第一个工作簿中必须查看的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)

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

希望这会有所帮助:(

相关内容

  • 没有找到相关文章