Vba Vlookup:Object不';不支持此属性或方法
2015年9月19日更新: 为了解决提出的问题,我将sub分为三个部分Vba Vlookup:Object不';不支持此属性或方法,vba,excel,Vba,Excel,2015年9月19日更新: 为了解决提出的问题,我将sub分为三个部分 将文件从一个位置复制到另一个位置 将(使用另存为方法)xls转换为xlsx。可以打开该文件 vlookup值并将其打印在指定的单元格上 我设法完成了前两项任务,第二项任务来自帮助: 但是,会弹出错误:当我运行 以前: 您好,这是我第一次问问题,我已经尽了最大的努力坚持给出的提示和指导方针。 注意:假设宏在a.xlsx中执行 我编写此宏的目的是: 从路径a复制文件(abc.xls) 将文件(abc.xls)粘贴到路径B 将
以前: 您好,这是我第一次问问题,我已经尽了最大的努力坚持给出的提示和指导方针。 注意:假设宏在a.xlsx中执行 我编写此宏的目的是:
我查看了论坛上的一些评论,据说只要是xlsx格式,就可以对关闭的excel工作簿执行vlookup。我不知道这是怎么回事 同样,我希望您能提供任何帮助 是“当前在Microsoft Excel应用程序中打开的所有工作簿对象的集合。”。它不包括硬盘上未打开的工作簿 如果您确定要访问已关闭的工作簿,请将公式写入工作表单元格,以处理与未打开工作簿的连接。通过在打开的工作表上计算本机工作表公式,您不必打开外部工作簿。可以通过将公式还原为其返回值来删除公式
dim extVLOOKUP as string
If FSO.FileExists(FilePath & sFile) Then
With Sheets("Data Pointer")
extVLOOKUP = "=VLOOKUP(""" & .Cells(i + 2, "N") & """, '" & FilePath & "[" & sFile & "]Sheet1'!$A:$L, 12, FALSE)"
'Debug.Print extVLOOKUP '<~~ uncomment to check the formula
'.Cells(i + 5, "B") = Application.Evaluate(extVLOOKUP)
.Cells(i + 5, "B").Formula = extVLOOKUP
.Cells(i + 5, "B") = .Cells(i + 5, "B").Value
End With
End If
dim extVLOOKUP作为字符串
如果存在FSO.files(FilePath&sFile),则
带图纸(“数据指针”)
extVLOOKUP=“=VLOOKUP(”&.Cells(i+2,“N”)&“,”&.FilePath&“[”&sFile&“]Sheet1'!$A:$L,12,FALSE)”
“Debug.Print extVLOOKUP”是“当前在Microsoft Excel应用程序中打开的所有工作簿对象的集合。”。它不包括硬盘上未打开的工作簿
如果您确定要访问已关闭的工作簿,请将公式写入工作表单元格,以处理与未打开工作簿的连接。通过在打开的工作表上计算本机工作表公式,您不必打开外部工作簿。可以通过将公式还原为其返回值来删除公式
dim extVLOOKUP as string
If FSO.FileExists(FilePath & sFile) Then
With Sheets("Data Pointer")
extVLOOKUP = "=VLOOKUP(""" & .Cells(i + 2, "N") & """, '" & FilePath & "[" & sFile & "]Sheet1'!$A:$L, 12, FALSE)"
'Debug.Print extVLOOKUP '<~~ uncomment to check the formula
'.Cells(i + 5, "B") = Application.Evaluate(extVLOOKUP)
.Cells(i + 5, "B").Formula = extVLOOKUP
.Cells(i + 5, "B") = .Cells(i + 5, "B").Value
End With
End If
dim extVLOOKUP作为字符串
如果存在FSO.files(FilePath&sFile),则
带图纸(“数据指针”)
extVLOOKUP=“=VLOOKUP(”&.Cells(i+2,“N”)&“,”&.FilePath&“[”&sFile&“]Sheet1'!$A:$L,12,FALSE)”
“Debug.Print extVLOOKUP”将sDFolder和sFile命名为sDFolder和Sheets(“数据指针”).Cells(i+2,“AI”)
您不能直接将xls
文件重命名为.xlsx
。我的意思是,您可以重命名,但它将不是有效的xlsx文件FileName=Sheets(“数据指针”).cell(I+2,“AI”)
您在cell
cell(I+5,“C”).Value=WorksheetFunction.VLookup(Sheets(“数据指针”).Cells(I+2,“AI”)、工作簿(FileName)中缺少s
s
单元格(I+5,“C”).Value=WorksheetFunction.VLookup(Sheets)(“数据指针”).Cells”(“数据指针”).Cells”).Cells(I+2,“AI”)、
您将新文件称为工作簿(文件名)
,但该工作簿尚未打开。修复我提到的所有这三件事,然后我们将在连接sSFolder&sFile
和sDFolder&sFile
时采用它。根据注释中的示例,没有连接反斜杠(例如Chr(92)
)。@Jeeped:我也考虑过这一点,但我猜OP在单元格表中已经指定了这一点(“数据指针”).Cells(i+2,“AG”)
因为文件被正确重命名:)将sDFolder&sFile命名为sDFolder&Sheets(“数据指针”).Cells(i+2,“AI”)
您不能直接将xls
文件重命名为.xlsx
。我的意思是,您可以重命名,但它将不是有效的xlsx文件FileName=Sheets(“数据指针”).cell(I+2,“AI”)
您在cell
cell(I+5,“C”).Value=WorksheetFunction.VLookup(Sheets(“数据指针”).Cells(I+2,“AI”)、工作簿(FileName)中缺少s
s
单元格(I+5,“C”).Value=WorksheetFunction.VLookup(Sheets)(“数据指针”).Cells”(“数据指针”).Cells”).Cells(I+2,“AI”)、
您将新文件称为工作簿(文件名)
,但该工作簿尚未打开。修复我提到的所有这三件事,然后我们将在连接sSFolder&sFile
和sDFolder&sFile
时采用它。根据注释中的示例,没有连接反斜杠(例如Chr(92)
)。@Jeeped:我也考虑过这一点,但我猜OP在单元格表中已经指定了这一点(“数据指针”).Cells(i+2,“AG”)
由于文件已正确重命名:)我将在周一再次运行代码并对此进行更新。它可以工作!谢天谢地。单元格(i+2,“N”)中的值不是数字。所以,我保留引用的原样。谢谢!刚意识到执行vlookup不需要将文件转换为xlsx。还有一个好消息。我将在周一再次运行代码,并对此进行更新。它很有效!谢天谢地。单元格(i+2,“N”)中的值不是数字。所以,我保留引用的原样。谢谢!刚意识到执行vlookup不需要将文件转换为xlsx。又是一个好消息。