我需要将有效范围的文本保存到.txt文件中。范围是工作表中名为" Reports"的列,行数的变化取决于报告生成的行数。此列F包含电子邮件地址,我们需要通过.txt文件将其上传到另一个系统。在.txt文件中,每个地址将位于不同的行中,而没有其他分隔符。我有这样的代码,但它总是将第一行留在文本文件中,从第二行开始。
Sub Macro_Newsletter()
Dim c As Range
Dim r As Range
Dim output As String
For Each r In Worksheets("Reports").Range("F2:F10000").Rows
For Each c In r.Cells
output = output & vbNewLine & c.Value
Next c
Next r
Open "C:\Users\joseph.lin\Desktop\Database\Newsletter" For Output As #1
Print #1, output
Close
End Sub
我只知道如何将它们输出到outlook。请帮我弄清楚使用VBA。
提前致谢!
答案 0 :(得分:1)
这样可以解决问题:
Sub Macro_Newsletter()
Dim wbText As Workbook
Dim wsReports As Worksheet
Set wbText = Workbooks.Add
Set wsReports = ThisWorkbook.Worksheets("Reports")
With wsReports
Dim lRow As Long
lRow = .Range("F" & .Rows.Count).End(xlUp).Row 'get last row of emails
.Range("F2:F" & lRow).Copy wbText.Sheets(1).Range("A1")
End With
Application.DisplayAlerts = False 'turn off alerts so you don't see messages about compatibility and such
With wbText
.SaveAs Filename:="C:\Users\joseph.lin\Desktop\Database\Newsletter\Emails.txt", _
FileFormat:=xlText
.Close False
End With
Application.DisplayAlerts = True
End Sub
答案 1 :(得分:0)
您可以简单地录制一个宏(开发人员选项卡)并将其保存为csv或.txt文件 - 一旦您有了这个,您可以根据需要进行编辑。如果您可以将其保存到Outlook,则应该能够将其保存到文本文档中。
这是一个相当常见的程序,应该在各种资源中有详细记录。