![](/img/trans.png)
[英]Receive data from SharePoint 2013 Excel-workbook using VBA Excel
[英]Read a path to a folder from a Excel-Workbook cell using vba
我有以下VBA代码
Dim directory As String, fileName As String
directory = "C:\User\Work\scorix\test_excel\"
fileName = Dir(directory & "*.xl??")
现在,我想更改代码,以便能够从给定的Excel-Workbook单元中读取路径,然后构建fileName
。 如果我尝试
directory = Worksheets("Summary").Range("B2").Value
fileName = Dir(directory & "*.xl??")
它不起作用。 这意味着一天结束时directory
为空,因此fileName
为空。 在下一步中,我尝试
With ThisWorkbook
directory = Sheets("Summary").Range("B2").Value
End With
有用! (但是,为什么?,可能我不理解With的定义。 )但是,在下一步中
fileName = Dir(directory & "*.xl??")
filename
仍然为空。 我用ActiveSheet
尝试了一切,但没有成功!
在我看来,这些错误相当随意,根据我的经验,同时处理多个工作表时可能会发生。 也许更换
directory = Worksheets("Summary").Range("B2").Value
与
directory = ThisWorkbook.Worksheets("Summary").Range("B2").Value
或替代(我更喜欢使用范围)
directory = ThisWorkbook.Worksheets("Summary").Cells(2, 2).Value
或者
With ThisWorkbook
' notice the dot in Front of "worksheets"
directory = .Worksheets("Summary").Range("B2").Value
End With
解决问题。
另一种情况下的方法可能是在VBA-Editor中命名工作表对象(在属性窗口中编辑(名称)属性)。
希望能有所帮助。
PS由于您使用Dir()函数,因此我相信您知道为了获取第二个文件,您必须反复调用它(可能是循环调用)而不提供目录。
directory = Worksheets("Summary").Range("B2").Value
fileName = Dir(directory & "*.xl??")
这段代码没有什么不对劲,您可能是在写工作表的名称不对吗?
With ThisWorkbook
directory = Sheets("Summary").Range("B2").Value
End With
不要忘记使用“。” 使用with语句时,在“表格”之前
fileName = Dir(directory & "*.xl??")
该代码不起作用的主要原因可能是因为有多个以“ * .xl ??”结尾的文件 在那个文件夹里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.