2011-06-10 81 views
0

我試圖循環通過每個工作表,並設置100行的列A到輸入參數的值。我希望每個表調用一個輸入框,並有列的值等於輸入,但正在發生的事情是,第一個工作表是獲得最後的輸入和所有columnA張值爲空,除了表1excel vba通過工作表循環,並根據輸入設置值

Dim wkbkorigin As Workbook 
Set wkbkorigin = Workbooks.Open("C:\bookB.xls") 

For Each ThisWorkSheet In wkbkorigin.Worksheets 
    Subject = InputBox("Enter the 'Subject' field for " & ThisWorkSheet.Name & ":") 
    For i = 1 To 100 
     Range("A2").Cells(i, 1) = Subject 
    Next 
Next 

回答

2

您可能需要更改:

Range("A2").Cells(i, 1) = Subject 

到:

ThisWorkSheet.Range("A2").Cells(i, 1) = Subject 

Range自身將適用於當前工作表(根據您的症狀,它是第一張工作表),因此您所做的只是簡單地每次覆蓋該工作表中的單元格。

這就是爲什麼他們以最後輸入的值結束,而其他工作表保持空白。

2

而且,也沒有必要循環 - 簡單地使用:

ThisWorkSheet.Range("A2:A100").Value = Subject 

這將是更快