我已经研究了很多关于stackoverflow和mrexcel以及其他一些网站来提出这个问题。简而言之,我有一个模板,我将信息复制到一些变量中,以创建一个文本字符串,该文本字符串填充到我已命名为&export;' export'的范围内。我希望将此范围复制到新工作簿以保存为.txt文件。但是,我希望VBA命名并将文件保存到预定位置[t:\ downloads]。文件名应该是源表上两个单元格的组合,帐号(存储在单元格c1中)和月/年(存储在单元格b3中)。例如,如果单元格c1中的帐号是123456,而b3中的日期是12/25/2017,那么我希望文件名显示为t:\ downloads \ 123456.2017.12.txt。
这是我到目前为止的代码:
Sub Foo_Tab()
Dim wbSource As Workbook
Dim wssource As Worksheet
Dim wbdest As Workbook
'References
Set wbSource = ActiveWorkbook
Set wssource = ActiveSheet
Set wbdest = Workbooks.Add
acct = Cells("c1")
yr = Year(Cells("b3"))
mnth = Month(Cells("b3"))
'Copy range on original sheet
wssource.Range("Export").Copy
'Save in new workbook
wbdest.Worksheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.CutCopyMode = False
'get file name from cells
Dim path As String
Dim full As String
Dim acct As String
Dim yr As String
Dim mnth As String
path = "Z:\Downloads\"
full = path + acct + "." + yr + "." + mnth + ".txt"
ActiveWorkbook.SaveAs filename:=full
wbdest.Close savechanges:=True
End Sub
答案 0 :(得分:0)
尝试替换
ActiveWorbook.SaveAs filename:=full
wbdest.Close savechanges:=True
这个(我假设wbdest是活动的worbook; -4158是.txt格式):
With wbdest
.SaveAs full, FileFormat:=-4158
.Close SaveChanges:=True
End With