gpt4 book ai didi

vba - 如何在 VBA 中使用单元格中的文件路径?

转载 作者:行者123 更新时间:2023-12-01 16:08:35 25 4
gpt4 key购买 nike

我正在运行一个 VBA 脚本,以便计算所选文件夹中每个文件的行数,然后将其显示在事件工作簿中。

 Option Explicit
Sub CountRows()
Dim wbSource As Workbook, wbDest As Workbook
Dim wsSource As Worksheet, wsDest As Worksheet
Dim strFolder As String, strFile As String
Dim lngNextRow As Long, lngRowCount As Long

Application.ScreenUpdating = False

Set wbDest = ActiveWorkbook
Set wsDest = wbDest.ActiveSheet

strFolder = Dir(Range("C7").Value)
strFile = Dir(strFolder & "*.xlsx")
lngNextRow = 11
Do While Len(strFile) > 0
Set wbSource = Workbooks.Open(Filename:=strFolder & strFile)
Set wsSource = wbSource.Worksheets(1)
lngRowCount = wsSource.UsedRange.Rows.Count
wsDest.Cells(lngNextRow, "F").Value = lngRowCount
wbSource.Close savechanges:=False
lngNextRow = lngNextRow + 1
strFile = Dir
Loop

Application.ScreenUpdating = True

End Sub

选择一个文件夹,我想使用插入到事件工作簿单元格“C7”中的目录,而不是在脚本中编写目录。我试图替代:

strFolder = "C:\Users\user\Desktop\"

 strFolder = Dir(Range("C7").Value)

但它不起作用。也许有人有什么想法?谢谢!

最佳答案

这一行 strFolder = Dir(Range("C7").Value) 在目录(来自 C7)中找到第一个文件,然后写入 这个文件的路径file 到变量 strFolder(例如,C:\temp\somefile.txt)。

代码的下一行:strFile = Dir(strFolder & "*.xlsx") 采用此路径并添加 *.xlsx。结果你会得到 strFile = Dir("C:\temp\somefile.txt*.xlsx") 这是错误的。

因此,更改此代码:

strFolder = Dir(Range("C7").Value)
strFile = Dir(strFolder & "*.xlsx")

下一个:

strFolder = Range("C7").Value
strFile = Dir(strFolder & "*.xlsx")

顺便说一句,我建议您像这样为 Range("C7") 指定工作表:wsDest.Range("C7")

关于vba - 如何在 VBA 中使用单元格中的文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21877684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com