私はstackoverflowとmrexcelとこれに付随するいくつかの他のサイトで素晴らしいことを研究しました。要するに、情報をコピーしていくつかの変数と結合して、「エクスポート」という名前の範囲に入るテキスト文字列を作成するテンプレートがあります。この範囲を新しいブックにコピーして.txtファイルとして保存したいと思います。しかし、私はVBAに名前を付けて、ファイルを所定の場所[t:\ downloads]に保存したい。ファイル名は、ソースシート上の2つのセル(セルc1に格納されている)と(セルb3に格納されている)月/年の組み合わせである必要があります。たとえば、セルc1のアカウント番号が123456、b3の日付が12/25/2017の場合、ファイル名はt:\ downloads \ 123456.2017.12.txtと表示されます。VBAのコピー範囲をデバッグし、ファイル名としてセル参照を使用して保存する
これは、これまで私が持っているコードです:
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
あなたは実際の問題が何であるかは言わないが、私はそれがここにあると思う。まず、 'Cells'内で範囲参照を呼び出すことはできません。 'Cells'は、(行、列の)引数を数値形式で...と期待しています。 '細胞(1,3)'。 'Range'を使用してセルアドレス:Range(" C1 ")'を使用します。次に、親ブックで「Cells」または「Range」への参照をすべて修飾します。たとえば、 'wbSource.Cells(1,3)'などです。書かれているように、コードは、明らかに空白になる、セルからデータを収集するために新しく追加されたブックを見ています。 –
'.SaveAs'関数に' FileFormat:= xlTextWindows'を含めてください。 – Maldred