[英]Method 'Range' of object '_Global' failed
我試圖遍歷三個下拉列表中的項目,命名范圍分別為A,B和C。Summary輸出根據所選下拉列表中的項目而變化。 我想復制每個摘要輸出(一個19行乘15列的表)並將其粘貼到新的工作表中(表3)。
例如,如果我在列表A中有3個項目,在列表B中有2個項目,在列表C中有2個項目,那么我總共需要將12個輸出(3 * 2 * 2)粘貼到工作表3中。
運行此代碼時,出現以下錯誤:
對象“ _Global”的方法“范圍”失敗
我將不勝感激! 我是VBA編程的新手,所以我敢肯定有一種更有效的方法可以...
謝謝!
Sub SummarizeData()
'
' SummarizeData Macro
'
Dim rngCeded As Range
Dim rngTF As Range
Dim rngFX As Range
Dim LOS As Integer
Set rngCeded = Range("A")
Set rngTF = Range("B")
Set rngFX = Range("C")
LOS = 19
For n = 1 To 12
For Each i In Range("A")
For Each j In Range("B")
For Each k In Range("C")
Sheets("Summary").Range("SummaryData").Copy
Sheets("Sheet3").Range("E5").Offset(i - 1, 0).PasteSpecial Paste:=xlPasteValues
Next k
Next j
Next i
n = n + LOS
Next n
End Sub
由於未指定范圍的來源( Set rng = Range("...")
),因此代碼的結果取決於調用該方法的上下文。
最好調用特定對象的Range方法。 在您的情況下,這可能是一個工作表對象,類似於以下內容:
' ...
Dim MySheet As Excel.Worksheet
Set MySheet = ActiveWorkbook.Sheets("MySheet")
Set rngCeded = MySheet.Range("A")
' ...
您不能使用大寫和小寫字符“ C”,“ c”,“ R”或“ r”作為定義的名稱,因為當您選擇當前所選單元格的行或列時,它們全部用作速記在“名稱”或“轉到”文本框中輸入它們。
Sub SummarizeData()
'
' SummarizeData Macro
'
Dim rngCeded As Range
Dim rngTF As Range
Dim rngFX As Range
Dim LOS As Integer
Set rngCeded = Range("A")
Set rngTF = Range("B")
Set rngFX = Range("D")
LOS = 19
For n = 1 To 12
For Each i In Range("A")
For Each j In Range("B")
For Each k In Range("D")
Sheets("Summary").Range("SummaryData").Copy
Sheets("Sheet3").Range("E5").Offset(i - 1, 0).PasteSpecial Paste:=xlPasteValues
Next k
Next j
Next i
n = n + LOS
Next n
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.