【问题标题】:Copy and Paste Area are not the Same复制和粘贴区域不一样
【发布时间】:2022-01-06 18:55:57
【问题描述】:

我想将我的一张 Excel 工作表上的特定范围复制到 txt 文件,但是当我使用代码时:

Sub FromExcelToNpad()
    'export activesheet as txt file
    Dim myPath As String, myFile As String
    myPath = ThisWorkbook.Path & "\"
    myFile = "z.txt"
    Dim WB As Workbook, newWB As Workbook
    Set WB = ThisWorkbook
    Application.ScreenUpdating = False
    Set newWB = Workbooks.Add
    WB.ActiveSheet.UsedRange.Copy newWB.Sheets(1).Range("A4,A10:A22,A28")
    With newWB
        Application.DisplayAlerts = False
        .SaveAs Filename:=myPath & myFile, FileFormat:=xlText
        .Close True
        Application.DisplayAlerts = True
    End With
    WB.Save
    Application.ScreenUpdating = True
    End Sub

不断收到复制和粘贴错误,如果我只使用range("A4"),它就可以工作,但它最终会将整个工作表复制到 txt。

【问题讨论】:

  • 如果你只想复制Range("A4,A10:A22,A28"),为什么要使用它作为destination参数,而不是使用.Copy呢?
  • 因为我对 VBA 的了解实际上是 -1,我只是从其他地方复制了该代码并尝试使其适应我的需要。谢谢先生您的评论解决了我的问题,我将代码安排为:
  • WB.ActiveSheet.Range("A4,A10:A22,A28").Copy newWB.Sheets(1).Range("A4") 非常感谢!!!

标签: excel vba export txt


【解决方案1】:
Sub FromExcelToNpad()
    'export activesheet as txt file
    Dim myPath As String, myFile As String
    myPath = ThisWorkbook.Path & "\"
    myFile = "z.txt"
    Dim WB As Workbook, newWB As Workbook
    Set WB = ThisWorkbook
    Application.ScreenUpdating = False
    Set newWB = Workbooks.Add
    WB.ActiveSheet.Range("A4,A10:A22,A28").Copy newWB.Sheets(1).Range("A4")
    With newWB
        Application.DisplayAlerts = False
        .SaveAs Filename:=myPath & myFile, FileFormat:=xlText
        .Close True
        Application.DisplayAlerts = True
    End With
    WB.Save
    Application.ScreenUpdating = True
End Sub

感谢@bigben,您的评论足以让我解决我的问题!!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-29
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多