"运行时错误' 1004'"命令不能用于多个选择

时间:2016-11-17 20:53:47

标签: excel vba excel-vba

我将一个VBA代码放在一个工作表上的表格中,然后将它们插入到另一个没有空白单元格的工作表中,然后清除原始表单。

然而,我遇到错误"运行时错误1004:命令不能用于多个选择"并且无法弄清楚是什么原因造成的。经过一些研究后,似乎保存并重新打开工作簿会使这个错误消失,但并非总是如此。

有什么想法吗?

Sub DataEntry()
'--- Find rows that contain any value in column G or H and copy them
Dim cell As Range
Dim selectRange As Range

For Each cell In ActiveSheet.Range("G3:H90")
    If (cell.Value <> "") Then
        If selectRange Is Nothing Then
            Set selectRange = cell
        Else
            Set selectRange = Union(cell, selectRange)
        End If
    End If
Next cell

selectRange.EntireRow.Select
selectRange.EntireRow.Copy

'Paste copied selection to the worksheet 'Data' on the next blank row
Sheets("Data").Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial _
     Paste:=xlPasteValues

'Delete content of rows after copy and paste
Union(Range("G3:G150"), Range("H3:H150")).ClearContents

1 个答案:

答案 0 :(得分:-1)

问题似乎是EntireRow属性正在成为变体,而不是范围。我最初尝试通过将变量声明为Range来解决这个问题,但这也没有用。但是,通过在行上执行原始Union而不是单元格,我能够使其工作。

Sub DataEntry()


'Find rows that contain any value in column G or H and copy them
Dim cell As Range
Dim selectRange As Range
Dim rowRange As Range

For Each cell In ActiveSheet.Range("G3:H90")
    If (cell.Value <> "") Then
        If selectRange Is Nothing Then
            Set selectRange = cell.EntireRow
        Else
            Set selectRange = Union(cell.EntireRow, selectRange)
        End If
    End If
Next cell

'No need to select anything here, just copy.
selectRange.Copy
.....

我不完全确定为什么会这样,但这为我解决了这个问题。

已编辑,因为原始修复无效。

相关问题