메모장에서 XML 파일을 생성하는 루프를 만들려고합니다. 머리말과 꼬리말뿐만 아니라 XML 파일을 만드는 것도 좋습니다. 내가 갖고있는 문제는 스크립트를 유연하게 만드는 것입니다. 스크립트는 입력 데이터 라인의 수를 변화시키면서 주기적으로 실행됩니다. 내가 현재 가지고있는 스크립트는 올바른 사용자 수에 대해 작동하는 XML 파일을 생성하지만 입력 된 데이터는 첫 번째 입력 행에서 반복됩니다. 나는 이것에 대한 내 두뇌를 쌓아 왔고 여기와 다른 사이트에서 수색했지만 내가 적용 할 수있는 것을 찾지 못했습니다. 나는 일반적으로 VBA를 사용하여 .xlsx 파일을 생성하므로 메모장에서 작업하는 것이 내 안락 영역에서 약간 벗어납니다. 나는 "Dim i As Integer"를 사용해 보았지만 Range ("D10"& i)와 아무데도 가지 않았습니다. 어떤 도움도 받으실 수 있습니다.Excel VBA에서 메모장에서 XML 파일을 채우는 루프 만들기
코드
Sub Macro1()
' Macro1 Macro
unique = Range("C1").Value
creation = Range("C2").Value
Users = Range("C10:C1010").Cells.SpecialCells(xlCellTypeConstants).Count
Total = Range("c4").Value
batch = Range("C3").Value
valuedate = Range("C6").Value
myfilename = batch
masterfile = "C:\temp\TEXTFILE.XML"
'LastRow = Range("C10", Range("C10").End(xlDown)).Rows.Count
Dim src As String, dst As String, fl As String
Dim rfl As String
FileNum = FreeFile ' next free filenumber
'Open "C:\Temp\TEXTFILE.TXT" For Output As #FileNum ' creates the new file
Open "C:\temp\TEXTFILE.XML" For Output As #1
'Header Script (no issue)
' Set numrows = number of rows of data.
NumRows = Range("C10", Range("C10").End(xlDown)).Rows.Count
' ' Select cell C10.
Range("C10").Select
' ' Establish "For" loop to loop "numrows" number of times.
For x = 1 To NumRows
' ' Insert your code here.
' generate line specific data
Print #FileNum, " " & "<CdtTrfTxInf>" & vbNewLine &
" " & "<XXXXX>" & vbNewLine &
" " & "<XXXXXXX>"; Format(Month(valuedate), "00") & Format(Day(valuedate), "00") & "-01<XXXXXXXX>" & vbNewLine & _
" " & "<XXXXXX>" & vbNewLine & _
" " & "<XXXXXX>" & vbNewLine & _
" " & "<XXXXXXXX" & """XXXXX""" & ">" & Range("D10").Value &
"<XXXXXX>" & vbNewLine & _
" " & "<XXXXX>" & vbNewLine & _
" " & "<XXXXXX>" & vbNewLine & _
" " & "<XXXXXXXXX>" & vbNewLine & _
" " & "<XXXXXX>" & Range("H10").Value & "<XXXXXXX>" & vbNewLine & _
" " & "<XXXXXXXX>" & vbNewLine & _
" " & "<XXXXXXX>" & vbNewLine & _
" " & "<XXXXXXXXX>" & vbNewLine & _
" " & "<XXXXXX>" & Range("C10").Value & "<XXXXXXXX>" & vbNewLine & _
" " & "<XXXXXXX>" & vbNewLine & _
" " & "<XXXXXXXXX>" & vbNewLine & _
" " & "<XXXXXXXX>" & vbNewLine & _
" " & "<XXXXXXXX>" & Range("G10").Value & "<XXXXXXX>" & vbNewLine & _
" " & "<XXXXXXX>" & vbNewLine & _
" " & "<XXXXXXXX>" & vbNewLine & _
" " & "<XXXXXXXXX>/XXXXXXXXXX/R/<XXXXXXXXXXXXX>" & vbNewLine & _
" " & "<XXXXXXXX>" & vbNewLine & _
" " & "<XXXXXXXX>" & Range("E10").Value & "<XXXXXX>" & vbNewLine & _
" " & "<XXXXXXXX>" & vbNewLine & _
" " & "<XXXXXXXXXXXXX>"
Next
End Sub
스프레드 시트의 자리 표시자를 사용하여 해당 행이 이미 내 보낸 적이 있는지 여부를 표시하고, 내 보내지 않은 경우 플래그를 표시하며, 해당 행을 내보내고 플래그를 추가하지 않는지 확인하는 방법은 어떨까요? 그 기록. – Xabier
닫기 : 범위 ("D"및 10 + i).값 – jkpieterse