2012-05-26 104 views
0

我有點卡住,試圖將值存儲在另一個打開的工作簿中的單元格中。 。我得到一個標超出範圍的錯誤」,所以顯然我不是指向該小區正確以下是我有:在另一個工作簿中更改單元格中的值

Workbooks(wbSource).Activate 
    ActiveWorkbook.Sheet32.Range("currMth").Value = Me.cboCurrMth.Value 

wbSource是保存在目標工作簿的名稱(一個字符串「myfile.xls」例如)我相信這是正確的定義和設置

我已經嘗試了很多不同的方式來存儲這個值,但沒有任何工作,這只是我的一個嘗試。如果我只是從寫入代碼的工作簿中填充它,我寧願不激活此工作簿。

任何人都可以看到我做錯了什麼嗎?

謝謝。

+0

確定'Sheet32'存在?這將是一個工作簿中的不少工作表... –

+0

是的。這是一本非常大的工作手冊。 – Alex

+0

Sheet32需要成爲工作表(32)...條件是32是工作表的索引。 – Trace

回答

1

1.)什麼是Sheet32? 2.)我不確定你可以通過名字來索引範圍。

以下工作:

Dim wb As Workbook 
Set wb = Workbooks ("t1.xlsx") 
wb.Names("MyRange").RefersToRange.Value2 = 5 
+0

感謝您的回覆。這有助於改變價值,這就是我所問的。自從我試圖讓問題陳述儘可能簡短之後,我沒有提到的是,我首先需要取消保護工作表,然後才能爲其寫入值。所以我仍然需要一種方法將焦點實際設置到sheet32上,以便我可以執行「sheet32.unprotect」(或沿着這些行)。對不起,我以前沒有提到過。 – Alex

+0

我應該澄清,如果我使用工作表的名稱(由用戶更改),我的代碼工作。只有當我想使用內部名稱時,它纔會起作用。所以,例如wb.worksheets(「myname」)。unprotect可以工作,但wb.worksheets(Sheet32).unprotect不起作用。奇怪的。 – Alex

+0

Sheet32是一個變量嗎?如果是這樣,我會嘗試Sheet32.unprotect。 – JohnB

相關問題