Excel VBA所有的工作表string操作

我有这个现有的代码工作,如果我把它保存在一个特定的工作表:

Sub Replacer() Dim N As Long, i As Long For h = 1 To 2 If h = 1 Then sLetter = "A" Else sLetter = "B" End If N = Cells(Rows.Count, sLetter).End(xlUp).Row For i = 1 To N If Left(Cells(i, sLetter).Value, 1) = "T" Then sTmp = Right(Cells(i, sLetter).Value, Len(Cells(i, sLetter)) - 1) Cells(i, sLetter).Value = sTmp End If Next i Next h End Sub 

前两列可能有,例如“T2”,其中列出的玩家第二。 其他行将只是数字。 我需要删除“T”,这样的单元格是严格的数字。 我有许多格式相同,但表格不同的工作表。

不过,我希望能够遍历所有可用的工作表,并做同样的事情。 我已经find了工作表循环的基本语法,但是我无法获得原始循环在这个外部循环内部/外部工作的正确语法。 然后我将这个函数保存在“本书”VBA部分下,然后从那里调用。

 For Each ws In ActiveWorkbook.Worksheets ????? Next ws 

有人可以帮忙吗?

我敢肯定,有人也会有一个更简洁的方式来search通过列A和B比我目前使用。

你想像你说的那样去掉T 所以我会以我的回答为基础。 下面将删除所有工作表中列A和B中的任何T

 Sub RemoveT() Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Range("A:B").Replace "T", "" Next End Sub 

您需要激活每个工作表,然后运行您的代码,这不是最干净的,但是一个可行的解决scheme。

 Sub ReplacerAll() For Each ws In ActiveWorkbook.Worksheets ws.Activate Call Replacer Next ws End Sub