2014-12-05 318 views
1

我正在用一些运行VBA的按钮编写Excel工作表。每个按钮在它最终将使用的范围的开始处实质上选取一个单元,长度(将要使用的单元的数量)和用户输入的一对其他参数,然后将该信息发送给子,其重新调整,目前含有一个细胞在长度Excel 2013 VBA调整大小不起作用

进入细胞的数量。当我使用

Sub GetFromCTLGX(RangeToFill As Range, Name, TagName, TagLength) 
RangeToFill = RangeToFill.Resize(1, TagLength) 

我的范围的范围内,“RangeToFill”是没有改变。

如果我使用

Sub GetFromCTLGX(RangeToFill As Range, Name, TagName, TagLength) 
RangeToFill.Resize(1, TagLength) 

代码故障和无法编译。

有其他人遇到过这个问题吗? 我错过了什么?

+0

你得到什么错误?有什么问题? – guitarthrower 2014-12-05 19:45:43

+0

@guitarthrower,我没有得到一个错误的第一种方式做到这一点。这没有任何意义。它只是在没有调整范围的情况下通过线路,事实证明它只需要在调整大小之前进行Set放置。 第二种方法会说它在RangeToFill.Resize命令之前会出现一个'=',这很奇怪,因为这似乎是大多数示例中常见的做法 – Danielh88 2014-12-08 16:30:51

回答

0

我发现在我的代码错误,

它应该是

Set RangeToFill= RangeToFill.Resize(1, TagLength)  

很奇怪,虽然....它仍然不向我解释为什么只是

RangeToFill.Resize(1, TagLength)  

不工作,这就是我看到的大多数例子中使用的。 我很惊讶没有没有Set关键字的错误。

0

本示例调整RangeToFill的大小以将其扩展一行一列。 http://msdn.microsoft.com/en-us/library/office/ff193274%28v=office.15%29.aspx

numRows = RangeToFill.Rows.Count 
numColumns = RangeToFill.Columns.Count 
Set RangeToFill = RangeToFill.Resize(numRows + 1, numColumns + 1) 

容易适应你的代码

+0

您可以看到这是我的一个尝试在我原来的代码,除了我使用了一个字面量的行数。我不明白为什么它不起作用,但只要我在示例的第三行前放置一个“Set”,它就起作用了。 – Danielh88 2014-12-08 16:34:00