Excel VBA - 当单元格为空时跳过重命名

问题描述 投票:0回答:1

我使用 PowerQuery 从数据库创建表并管理文件。

我需要将一些文件移动到特定文件夹,具体取决于某些列中的值。不需要在我的 VBA 代码中检查这些,所有各种检查都是使用 PowerQuery 完成的。

实际上我的表格中还有更多列,但我在宏中查看的 3 就是那些 3。

原住民名称 新本地名称 完整路径 ew文件夹
完整路径文件夹1新文件名1 完整路径文件夹1新文件名1 完整路径文件夹1
完整路径文件夹2
完整路径文件夹1文件名3 完整路径文件夹1新文件名3 完整路径文件夹1

我的VBA代码只是移动生成的表中列出的文件。 有些行是空白的,因为没有文件或不需要重命名(但需要其他列,所以我无法完全删除我的行)。 如果需要,我需要在移动文件之前创建该文件夹。但我还需要跳过空白行,在这里我有错误。

我最后一次尝试的代码如下,我尝试跳过重命名。

   Sub Move_Native()
   Dim TAncNouv(), L&
   Dim Fobj As Object
   Set Fobj = CreateObject("scripting.filesystemobject")
   ChDrive ThisWorkbook.Path: ChDir ThisWorkbook.Path
   TAncNouv = ActiveSheet.Range("xml_ENGDOC[OriginalNativeName]").Resize(, 3).Value
   
   For L = 1 To UBound(TAncNouv, 1)
   If Fobj.FolderExists(TAncNouv(L, 3)) = False Then
   MkDir (TAncNouv(L, 3))
   End If
   If IsEmpty(TAncNouv(L, 1)) = True Then
   
   Else
      
      Name TAncNouv(L, 1) As TAncNouv(L, 2)
      
      End If
      
      Next L
   End Sub

但我还有一个:

运行时错误“75”:路径/文件访问错误

图像:调试器显示空单元格发生错误 所以这意味着我没有正确跳过。我做错了什么?我该怎么做才能跳过这一部分?

提前致谢

excel vba directory
1个回答
0
投票

IsEmpty
设计用于对象,以识别它们是否已初始化。你不应该以这种方式在单元对象上使用它们。

要测试单元格是否不包含数据,请使用:

If TAncNouv(L, 1) =vbNullString
© www.soinside.com 2019 - 2024. All rights reserved.