2012-09-11 77 views
1

我想將格式應用於當前工作簿中的每個工作表。我已經嘗試過「For Each」,並且我嘗試循環直到達到最後一張工作表,但由於不同的原因導致錯誤。有人可以告訴我我做錯了什麼嗎?循環直到上一張工作表

方法1:它適用於第1張工作表,但不適用於其餘工作表。方法2:它不能識別最後一張工作表。不能識別最後一張工作表。

Sub format_worksheets() 

    Dim ws As Worksheet 

    ws = Worksheet.Active 

    Do 

     code 

    Loop Until ws = Sheets(Sheets.Count).Active 

End Sub 

回答

4

在方法之一,嘗試改變:

Columns("A:A").Select 

ws.Activate 
ws.Columns("A:A").Select 

...激活工作表,並指定要使用工作表。

+0

這工作 - 非常感謝你。我不敢相信這很簡單。感謝您的意見。 – user1624926

+0

再次感謝 - 感謝幫助。 – user1624926

+0

您應該通過單擊綠色勾號將問題標記爲已解決。這可以防止其他開發人員(比如我自己)開啓你的問題,認爲你仍然需要幫助。 – Reafidy

1

我試圖弄清楚你想用方法2來做什麼,但我不能。但僅僅是因爲,這是一個不適用於每個版本的工作版本。

Sub format_worksheets() 
    dim x as Integer 
    For x = 1 To Sheets.Count 
     Sheets(x).Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _ 
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ 
        Semicolon:=False, Comma:=True, Space:=False, Other:=True, TrailingMinusNumbers:=True 
    Next x 
End Sub 

請注意,如果任何片材在A列中沒有數據,這將的錯誤,我也離開了select語句,因爲這是避免他們,如果他們是沒有必要的最佳實踐。