簡體   English   中英

對象工作表的方法范圍失敗excel VBA

[英]Method Range of Object Worksheet failed excel VBA

我一直在使用excel視覺基本宏遇到一個特定的問題。 我已經編寫了一個腳本,將一個動態范圍的數據從一個工作表簡單地粘貼到另一個工作表。粘貼到的工作表是一個正在運行的工作表,每當向其發送新數據時,該工作表就會更新到下一個空行。 對於某些數據范圍,我的代碼中斷並給我1004錯誤。 我看過多個類似的問題,但它們似乎並沒有給我任何解決方案。

我將首先發布我的代碼,然后發布一個有效的數據集和一個無效的數據集。

Private Sub RunningSheetClick_Click()

Dim lastrow As Long

Dim Vals As Range

Dim copyWS As Worksheet
Dim pasteWS As Worksheet

Set pasteWS = Sheets("Full List")
Set copyWS = Sheets("Macro Test")
Setlastrow = Sheets("Full List").Range("A" & Rows.count).End(xlUp).Row + 1

copyWS.Activate

' the following line is where my error appears
Set Vals = copyWS.Range("B3:S" & copyWS.Range("B3").End(xlDown))

Vals.Select

Vals.Copy _
    Destination:=pasteWS.Range("A" & lastrow)

End Sub

這是一個數據集,可以正常工作並將其正確導出到工作表“完整列表”

這是一個數據集,與第一個數據集的整數相比,我認為它與B列和那些單元格中的字符串有關

任何幫助,將不勝感激,謝謝您抽出寶貴的時間

這是語法錯誤,永遠不會起作用。 您只是不能將范圍對象連接到字符串上,而期望有效的范圍對象。 我懷疑它可以與數字一起使用,因為copyWS.Range("B3").End(xlDown)默認返回其單元格值。 因此,如果B列底部的值為99,則將解析為Range("B3:S99")

Set Vals = copyWS.Range("B3:S" & copyWS.Range("B3").End(xlDown))

應該是這樣的

with copyWS
    Set Vals = .Range(.cells(3, "B"),  .cells(rows.count, "B").end(xlup).offset(0, 17))
end with

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM