每次在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
答案 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