我的Excel工作表上有代码。 我创建工作表的目的是从文件夹中的多个文件中复制选定的数据。
我想知道当文件路径为空时是否有可能忽略空单元格?
我的代码在这里但是当文件路径为空时,它会显示运行时错误“1004”:抱歉,我们找不到。它是否可能被移动,重命名或删除?
这将是我的代码:
Option Explicit
Sub FetchData()
Dim shDestin As Worksheet
Application.ScreenUpdating = False
Set shDestin = ThisWorkbook.Sheets("Sheet1")
CopyFileContent Range("B11").Value & shDestin.Range("A1").Value, _
shDestin, 11
CopyFileContent Range("B12").Value & shDestin.Range("A1").Value, _
shDestin, 12
End Sub
Sub CopyFileContent(filePath As String, destSheet As Worksheet, destRow As Long)
Dim wbSource As Workbook, shSource As Worksheet, rngDest As Range
Set wbSource = Workbooks.Open(Filename:=filePath)
Set shSource = wbSource.Sheets("Sheet1")
Set rngDest = destSheet.Cells(destRow, 5).Resize(1, 9)
'ni
rngDest.Value = shSource.Range("C2:K2").Value
rngDest.Value = shSource.Range("C2:K2").Value
'au
rngDest.Offset(0, 9).Value = shSource.Range("C3:K3").Value
'pd
rngDest.Offset(0, 18).Value = shSource.Range("C4:K4").Value
wbSource.Close False
End Sub
答案 0 :(得分:1)
在调用函数CopyFileContent
之前,您需要确保从中获取值的单元格不为空。
您可以使用函数IsEmpty()
来检查单元格是否为空。
编辑:根据提问者的评论,实际检查应如下:
If (not IsEmpty(Range("B12").Value) Then
CopyFileContent Range("B12").Value & shDestin.Range("A1").Value, _
shDestin, 12
EndIF
在这种情况下,只有在单元格B12不为空时才会执行该功能。