我真的是 VBA 的新手,我正在尝试编写一个宏,它将某些特定单元格的内容保存到我 Mac 上的特定位置。整个代码工作正常,除了它不会保存到正确的位置;所有文件保存到桌面。
基本上,A1 开始包含类似“260 - CategoryA - 555.555.555.555 - 2012-11-06 17:43:49”的内容,我希望宏将 A 列第 2-61 行的内容保存到文本以单元格 A1 中的前 3 个数字命名的文件。我希望它保存到的位置取决于单元格 A1 最初是否包含文本“CategoryA”或“CategoryB”。同样,它将数据导出到文本文件就好了,但只会保存到桌面。
任何帮助都会很棒!
Public Sub Columns_2_TextFile()
Const My_Path1 = "Users:Username:Desktop:Folder1"
Const My_Path2 = "Users:Username:Desktop:Folder2"
Dim iCol As Integer
Dim lRow As Long
Dim File_Num As Long
Dim SaveDest As String
On Error Resume Next
If InStr(1, Cells(1, 1).Value, "CategoryA", vbTextCompare) > 0 Then
If Trim(Dir(My_Path1, vbDirectory)) = "" Then
MkDir My_Path1
Else
Kill My_Path1 & "*.txt"
End If
ElseIf InStr(1, Cells(1, 1).Value, "CategoryB", vbTextCompare) > 0 Then
If Trim(Dir(My_Path2, vbDirectory)) = "" Then
MkDir My_Path2
Else
Kill My_Path2 & "*.txt"
End If
End If
On Error GoTo 0
File_Num = FreeFile
With ActiveSheet
Cells(1, 1).Value = Left(Cells(1, 1), 3)
Open Trim(.Cells(1, 1).Value) & ".txt" For Output As #File_Num
For lRow = 2 To 61
Print #File_Num, .Cells(lRow, 1).Value
Next
Close #File_Num
End With
End Sub