2016-06-23 63 views
1

我需要將有效範圍的文本保存到.txt文件。範圍是工作表內名爲「報告」的列,行數取決於報告生成的行數。該列F包含電子郵件地址,我們需要通過.txt文件上傳到另一個系統。在.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

你嘗試過什麼?如果是這樣,請提供代碼,看看[tour](http://stackoverflow.com/tour)和[如何提問](http://stackoverflow.com/help/how-to-ask )。 StackOverflow不是一個「我們爲你代碼」的服務提供商。[VBA簡介](https://blog.udemy.com/excel-macros-tutorial/) – Sgdva

+0

查看VBA的更新介紹 –

回答

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中,您應該可以將其保存到文本文檔中。

這是一個相當普遍的過程,應在各種資源中詳細記錄。

+0

請檢查更新。 @Opzen –

相關問題