2012-09-11 43 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语句,因为这是避免他们,如果他们是没有必要的最佳实践。