如何在文件路径为空时忽略单元格

时间:2014-05-21 09:35:57

标签: excel excel-vba excel-2010 vba

我的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

1 个答案:

答案 0 :(得分:1)

在调用函数CopyFileContent之前,您需要确保从中获取值的单元格不为空。

您可以使用函数IsEmpty()来检查单元格是否为空。

编辑:根据提问者的评论,实际检查应如下:

If (not IsEmpty(Range("B12").Value) Then
  CopyFileContent Range("B12").Value & shDestin.Range("A1").Value, _
                  shDestin, 12
EndIF

在这种情况下,只有在单元格B12不为空时才会执行该功能。