สูญเสียอักขระเมื่อคัดลอกและวางลงในไฟล์แบตช์ผ่าน VBA


0

ขณะนี้ฉันกำลังใช้รหัส VBA ต่อไปนี้เพื่อคัดลอกและวางช่วงของข้อมูลในไฟล์ excel เพื่อสร้างไฟล์ Batch ฉันพบปัญหาต่อไปนี้:

  1. ใบเสนอราคาจะถูกวางไว้รอบเนื้อหาของเซลล์แต่ละรายการ
  2. ฉันสูญเสียการกลับมาของตัวละคร

นี่คือข้อมูลของฉันที่ถูกคัดลอกแต่ละบรรทัดด้านล่างต้องคัดลอกในอีกบรรทัดหนึ่งในแบตช์ไฟล์:

@ftp -i -s:"%~f0"&GOTO:EOF
open ecggwprd.uhc.com
if1**79
W88***3k
bin
put \\Nas00233pn\ACP_Finance_Ops\FTP\Ced.201602.zip  /cedarhill/Ced.201602.zip
!ping -n 30 0.0.0.0 > NULL
CD /ced
dir Q__C_

ไม่มีใครรู้ว่าฉันสามารถแก้ไขรหัส VBA ของฉันเพื่อแก้ไขรายการเหล่านี้ได้อย่างไร

นี่คือสำเนารหัสของฉัน:

Sub savebat()

Dim wbSource As Workbook
Dim wsSource As Worksheet
Dim wbDest As Workbook
Dim fName As String

Set wbSource = ActiveWorkbook
Set wsSource = ActiveSheet
Set wbDest = Workbooks.Add

wsSource.Range("A1:A51").Copy

'----------------------------
'Save in new workbook
wbDest.Worksheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Application.CutCopyMode = False

Application.CutCopyMode = False

'Get file name and location from user
fName = Application.GetSaveAsFilename(FileFilter:="bat (*.bat), *.bat", Title:="Save As")
If fName = "" Then Exit Sub '//user cancelled

'Save new bat file
wbDest.SaveAs fName, FileFormat:=xlText

wbDest.Close SaveChanges:=True
'----------------------------

End Sub

คำตอบ:


0

เพียงแค่เขียนไปที่ไฟล์แทนที่จะผ่าน WB อื่น

Option Explicit

Sub CreateBatch()
    Dim myPathTo As String
    myPathTo = "C:\path\to\mybatch.bat"
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim batchFile As Object
    Set batchFile = fso.CreateTextFile(myPathTo)

    Dim lastRow As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    Dim i As Long

        For i = 1 To lastRow
            batchFile.write Cells(i, 1) & vbNewLine
        Next
        batchFile.Close
    Set fso = Nothing
    Set batchFile = Nothing
End Sub

ที่ใช้งานได้ดีสำหรับการลบ "" แต่ฉันยังคงสูญเสียตัวละครกลับมาจากจุดสิ้นสุด
Kthorson16 16

จากนั้นแทนที่ vbnewline ด้วย chr 10 และ 13
Raystafarian
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.