【发布时间】:2020-01-25 00:41:40
【问题描述】:
此宏将逗号分隔的值放入不同的单元格,当我在一个 Excel 文件中使用它时它可以正常工作:
Sub toColumns()
'
' toColumns Macro
' Changes csv to columns
'
' Keyboard Shortcut: Ctrl+a
'
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1)), TrailingMinusNumbers:=True
End Sub
我正在尝试this 为文件夹中的所有文件执行此操作。所以改编的代码是:
Sub ProcessFiles()
Dim Filename, Pathname As String
Dim wb As Workbook
Pathname = "H:\Macro\positions"
Filename = Dir(Pathname & "*.xls")
Do While Filename <> ""
Set wb = Workbooks.Open(Pathname & Filename)
DoWork wb
wb.Close SaveChanges:=True
Filename = Dir()
Loop
End Sub
Sub DoWork(wb As Workbook)
With wb
'Do your work here
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1)), TrailingMinusNumbers:=True
End With
End Sub
但是当我运行它时没有任何反应。 这是我第一次使用 VBA 和 Excel 宏。
我错过了什么?
【问题讨论】: