2014-12-05 67 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