复制/粘贴区域的大小不同

时间:2017-11-06 14:56:32

标签: excel vba excel-vba

我一直收到这个VBA代码之前没有收到的错误:

    ActiveSheet.Select
    Range("A1:H100").Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$H$100").AutoFilter Field:=1, Criteria1:="<>"
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone SkipBlanks _
        :=False, Transpose:=False
    ActiveSheet.Copy
    fileSaveName = Application.GetSaveAsFilename( _
    fileFilter:="Text Files (*.txt), *.txt")
    If fileSaveName <> False Then
    ActiveWorkbook.SaveAs Filename:=fileSaveName, FileFormat:=xlText, CreateBackup:=False
    MsgBox "File salvato al percorso " & fileSaveName & "."
    End If

      ActiveSheet.Range("$A$1:$H$100").AutoFilter Field:=1
告诉我复制/粘贴区域不一样。我尝试做的是过滤结果,复制它们并粘贴到新工作簿中,将其保存为原始工作簿上的.txt和unfilter。

感谢您的帮助!

取值

2 个答案:

答案 0 :(得分:1)

发生错误是因为复制的单元格无法粘贴到所选区域,因为复制大小和粘贴大小不同。只是尝试选择一个不同的位置,在粘贴之前可能是第二张单元格1,1,它会起作用。试过&amp;在我的最终工作。

答案 1 :(得分:0)

您可以尝试这样的事情......

Dim dwb As Workbook
ActiveSheet.AutoFilterMode = False
With Range("A1:H100")
    .AutoFilter field:=1, Criteria1:="<>"
    If Range("A1:A100").SpecialCells(xlCellTypeVisible).Cells.Count > 1 Then
        Set dwb = Workbooks.Add
        .SpecialCells(xlCellTypeVisible).Copy
        dwb.Sheets(1).Range("A1").PasteSpecial xlPasteValues
    End If
    .AutoFilter field:=1
End With