gpt4 book ai didi

vba - 使用 Excel VBA 循环浏览文件夹中的 .csv 文件并将文件名复制到最后一列的单元格中

转载 作者:行者123 更新时间:2023-12-04 21:57:58 25 4
gpt4 key购买 nike

我有数千个具有特定文件名的 .csv 文件。
每个 .csv 文件的第一行作为标题,后面的行(通常为 20 行)作为数据。
我需要帮助将每个 .csv 文件的文件名复制到最后一列 20 行,并且需要循环浏览文件夹中的所有 .csv 文件。

提前致谢!

最佳答案

这应该这样做。根据您的操作,您可能想要更改它,以便在文件名字段已经存在时不会添加它。等等

Public Sub UpdateFiles()

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim xl As New Excel.Application
Dim wb As New Excel.Workbook
Dim lastRow
Dim lastColumn

Dim folder

'Change this folder to the one you want.
Set folder = fso.getFolder("c:\notbackedup\")

'Uncomment to watch/debug code
'xl.Visible = True

For Each f In folder.Files
Debug.Print f.Name
If (f.Name Like "*.csv") Then
Set wb = xl.Workbooks.Open(f.Path)
lastRow = wb.Sheets(1).UsedRange.Rows.Count
lastColumn = wb.Sheets(1).UsedRange.Columns.Count
wb.Sheets(1).Range(ColumnLetter(lastColumn + 1) & "1").Value = "FileName"
wb.Sheets(1).Range(ColumnLetter(lastColumn + 1) & "2:" & ColumnLetter(lastColumn+1) & lastRow).Value = f.Name
wb.Save
wb.Close True
End If
Next
xl.Quit


End Sub
Function ColumnLetter(ByVal ColumnNumber As Long) As String
Dim n As Long
Dim c As Byte
Dim s As String

n = ColumnNumber
Do
c = ((n - 1) Mod 26)
s = Chr(c + 65) & s
n = (n - c) \ 26
Loop While n > 0
ColumnLetter = s
End Function

关于vba - 使用 Excel VBA 循环浏览文件夹中的 .csv 文件并将文件名复制到最后一列的单元格中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40712094/

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