【发布时间】:2022-01-18 06:55:12
【问题描述】:
我的工作簿中有多个工作表。 每个工作表都有两列数据(ColA 和 ColC),我想将它们打印到单独的文本文件中。 附加的代码生成两个文本文件:“WorksheetTab_LnFn.txt”和“WorksheetTab_FnLn.txt” 从我的 ColA 保存的文本文件没有引号,而从我的 ColC 保存的第二个文本文件有引号 - 我希望每个生成的文本文件都没有引号。
我以后可能有工作表,其中包含 ColA、ColC、ColE 和 ColG 中的数据,我想将每个工作表导出/保存/打印到一个文本文件 - 因此在这种情况下我想要四个单独的文本文档,全部不带引号标记。
我能找到的最佳代码是:Write export of selected cells as a .txt file without "quotation marks",我查看了How to create a text file using excel VBA without having double quotation marks?。
我了解其中的大部分内容,但未能成功地将部分代码集成到我的代码中。理想情况下,我正在寻求减少代码和循环,以便在没有两个单独的代码块的情况下处理 ColA 和 ColB。我确实使用了我找到的代码并进行了最小的更改,但不知道是否需要 Case LCase 行
'Create FirstName LastName Isolation TXT files
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each sh In Sheets
Select Case LCase(sh.Name)
Case LCase("[COLOR=#0000ff]Master[/COLOR]"), LCase("[COLOR=#0000ff]Info[/COLOR]")
Case Else
sh.Range("A:A").Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & sh.Name & "_FnLn.txt", _
FileFormat:=xlTextMSDOS, CreateBackup:=False
ActiveWorkbook.Close False
End Select
Next
'Create LastName FirstName Isolation TXT files
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each sh In Sheets
Select Case LCase(sh.Name)
Case LCase("[COLOR=#0000ff]Master[/COLOR]"), LCase("[COLOR=#0000ff]Info[/COLOR]")
Case Else
sh.Range("C:C").Copy
Workbooks.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & sh.Name & "_LnFn.txt", _
FileFormat:=xlTextMSDOS, CreateBackup:=False
ActiveWorkbook.Close False
End Select
Next
MsgBox "Text Files Created"
End Sub
【问题讨论】:
-
你不能有像
"[COLOR=#0000ff]Master[/COLOR]"这样的工作表名称,那为什么会有呢?那个代码是从其他地方来的吗? -
chandoo.org/wp/save-range-as-text-using-vba 的代码可以满足您的需求。
-
重新编码,是的,我在其他地方获得了基本代码,但无法弄清楚为什么蓝色会出现在文本文档中。我把它留在里面,直到我可以为止。 . .在别人的帮助下。 . .消除它。
-
关于代码推荐,我会在几分钟内玩它。我以前看过 CHANDOO 代码,但就像 Google 的所有内容一样,它是您对查询的表述方式。谢谢你的推荐,蒂姆。
-
蒂姆。 . .完全根据需要。现在将修改以处理通过多张纸的循环。谢谢。