如何解决运行时错误1004;我们不能在合并的单元格中做到这一点

时间:2019-03-14 13:43:45

标签: excel vba

每次在Sheet1中只有一列包含数据的数据时,我运行下面的代码,就会出现此错误消息。

  

运行时错误1004;我们不能在合并的单元格中做到这一点

Sheets("Sheet1").Select
Range("E6", "G6:I6").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.SpecialCells(xlCellTypeVisible).Copy
Windows("Excel.xlsm").Activate
Sheets("Sheet1").Select
Range("A" & Rows.Count).End(xlUp).Offset(1).Select
ActiveSheet.Paste

1 个答案:

答案 0 :(得分:0)

首先要注意的是,永远不要在Excel Vba中使用.Select。您确实需要学习如何使用With

要注意的第二件事是您需要重新创建此问题。转到并跟随您录制的宏,然后在其中查找问题

由于您的代码来自宏记录,因此非常不稳定。您永远不要选择多种单元格类型并粘贴到vba

现在要提的第三件事是,您可能不需要“复制+粘贴”-如果您使代码的运行时间足够长并可以执行其他操作(想在Chrome中复制链接, ,您的整个脚本已损坏)

第1步:按照以下格式开始使用宏。

第2步:考虑,了解您希望代码执行的操作以及所受的限制

第3步:然后寻求帮助-当您有MCVE

Sub Base()

Dim wb As Workbook, ws As Worksheet, rng As Range


Set wb = ThisWorkbook
Set ws = Worksheets("Sheet1")
Set rng = 'whatever you want

    With rng
        'Here you would copy your range
    End With

    'Here you would paste/move your range

End Sub

命名范围:

Dim rngName As String, rngB As Range

rngName = "NamedRangeExample"

Set rngB = ws2.Range("A5:C10")

wb.Names.Add Name:=rngName, RefersTo:=rng2