2016-07-28 77 views
1

我不斷收到錯誤,「選擇範圍類的方法失敗」,並從行意想不到的結果。(「2:2」)將Excel VBA中選擇在我的子例程中的一個工作表和範圍不工作

代碼低於

Worksheets("Sheet3").Select 

Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove  

Range("D4").Select 

首先將新行添加到Sheet 1而不是Sheet 3,然後Range不能選擇1004錯誤。我已經使用這個確切的腳本來選擇其他工作表和範圍沒有問題。我可以提供完整的文件和代碼給任何人誰可以幫助

+0

見[工作表.name和的.index或.CodeName](http://stackoverflow.com/documentation/excel-vba/2240/excel-vba-tips-and代碼-tricks/11272 /工作表名稱,索引或-代號)。 – Jeeped

回答

0

避免使用.Select。您可能想看到This

此外,請確保您的工作表不受保護。

這是你正在嘗試?

Worksheets("Sheet3").Rows(2).Insert Shift:=xlDown, _ 
CopyOrigin:=xlFormatFromLeftOrAbove  
+0

我正在使用.select,以便我有一個永久的起點。在後面的代碼中,我使用了For Next循環對於i = 1到myarraycount ActiveCell.Value = BidItemsName(i) ActiveCell.Offset(0,1).Value = BidItems(i) ActiveCell.Offset(0,2 ).Value = BidItemQuant(i) ActiveCell.Offset(0,3).Select Next i – BKruk

+0

這正是您必須忽略的內容。請重新閱讀我給出的鏈接:) –

0

下面的代碼工作,定義表,而不是使用Select(第一時間):

Dim sht3 As Worksheet 

Set sht3 = ThisWorkbook.Sheets("Sheet3") 

sht3.Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
sht3.Range("D4").Select 
+0

當我使用我在不同的Sub()中提供的代碼時,沒有問題,它只發生在我的一個段中。 – BKruk

+0

@BKruk然後你需要提供其餘的代碼,所以我們可以看到你在哪裏以及爲什麼會得到這個錯誤 –

0

當您使用選擇,你會始終確保特定表處於活動狀態。如果沒有使用激活屬性激活它。下面是做的工作

Worksheets("Sheet3").Activate 

Worksheets("Sheet3").Select 

Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 

Range("D4").Select 
+0

我能夠通過創建另一個Sub()並添加以下代碼來避免錯誤:'code'Worksheets( 「表Sheet 3」)激活 工作表( 「表Sheet 3」)選擇 行(。 「2:2」)選擇 Selection.Insert移位:= xlDown,copyOrigin:= xlFormatFromRightOrBelow 範圍( 「E2」)選擇 – BKruk

相關問題