2016-07-28 74 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

相关问题