나는 stackoverflow 및 mrexcel 및 기타 몇 가지 사이트에서 큰 비트를 연구했습니다. 즉, 필자는 정보를 복사하여 몇 가지 변수와 결합하여 '내보내기'라는 이름의 범위로 채워지는 텍스트 문자열을 만드는 템플릿을 가지고 있습니다. 이 범위를 새 통합 문서로 복사하여 .txt 파일로 저장하려고합니다. 그러나 VBA에서 이름을 지정하고 파일을 미리 지정된 위치 [t : \ downloads]에 저장하도록합니다. 파일 이름은 소스 시트의 두 셀 (계정 c1에 저장) 및 월/년 (셀 b3에 저장 됨)의 조합이어야합니다. 예를 들어 셀 c1의 계정 번호가 123456이고 b3의 날짜가 12/25/2017 인 경우 파일 이름을 t : \ downloads \ 123456.2017.12.txt로 표시하고 싶습니다. (; -4158가 .txt 인 형식이다 나는 wbdest이 활성화 worbook이라고 가정)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
실제 문제는 무엇인지는 모르겠지만 여기에는 '셀'이라고 생각됩니다. 첫째, '셀'안에서 범위 참조를 호출 할 수 없습니다. '셀 '은 (행, 열) 인수를 숫자 형태로 기대합니다. 즉. '세포 (1,3)'. 셀 주소를 사용하려면'Range'를 사용하십시오 :'Range ("C1")'. 둘째, 부모의 워크 북으로 '셀'또는 '범위'에 대한 모든 참조를 한정하십시오. 예를 들어,'wbSource.Cells (1,3)'. 작성된대로 코드는 새로 추가 된 통합 문서를보고 셀에서 데이터를 수집합니다. 이는 분명히 비어있게됩니다. –
'.SaveAs' 함수 안에'FileFormat : = xlTextWindows'를 포함 시켰는지 확인하십시오 – Maldred