David需要在多工作表工作簿中查找并更改每次出现的特定单元格格式。例如,他可能需要找到所有格式设置为“货币”的单元格,然后将该格式更改为“常规”。他想知道如何完成任务。

执行此任务的最佳方法取决于您使用的Excel版本。如果您使用的是Excel 2003,则只需使用Excel的“查找和替换”工具进行更改。请按照下列步骤操作:

。按Ctrl + H。 Excel将显示“查找和替换”对话框的“替换”选项卡。

。如果需要,请单击“选项”按钮以放大对话框。

(请参见图1。)

。单击“查找内容”行右侧的“格式”按钮。 Excel将显示“查找格式”对话框。

。确保显示“数字”选项卡。 (请参见图2。)

。使用对话框中的控件来指定要查找的格式。

。单击“确定”关闭“查找字体”对话框。

。单击“替换为”行右侧的“格式”按钮。 Excel将显示“替换格式”对话框。

。确保显示“数字”选项卡。

。使用对话框中的控件来指定要用作替代格式。

。单击“确定”关闭“替换字体”对话框。

。使用“内部”下拉列表选择“工作簿”。

。单击全部替换。

如果您使用的是旧版Excel,则“查找和替换”工具将不允许您搜索或替换格式。相反,您必须使用宏进行更改。这是一个宏的示例,该宏仅遍历工作簿中所有使用的单元,并将所有格式设置为“常规”。

Sub FormatGeneral()

Dim iSht As Integer     Dim rng As Range

For iSht = 1 To Sheets.Count         Set rng = Worksheets(iSht).UsedRange         With rng             .NumberFormat = "General"

End With     Next End Sub

如果您想对替换格式有更多选择,那么在检查单元格时,需要检查它们的现有格式。例如,以下宏检查所有格式为“货币”的单元格,然后仅将这些单元格更改为“常规”格式。

Sub CurrencyToGeneral()

Dim iSht As Integer     Dim rng As Range     Dim c As Range

For iSht = 1 To Sheets.Count         For Each c In Worksheets(iSht).UsedRange.Cells             If c.NumberFormat = "$#,##0.00" Then                 c.NumberFormat = "General"

End If         Next c     Next End Sub

如果要使宏更加灵活,可以让它要求您单击使用要查找的格式的单元格,然后单击要使用将其更改为该格式的单元格。

Public Sub UpdateFormats()

Dim rFind As Range     Dim rReplace As Range     Dim rNextCell As Range     Dim sNewFormat As String     Dim sOldFormat As String     Dim ws As Worksheet

On Error Resume Next

' Determine the old format     Do         Set rFind = Application.InputBox( _           prompt:="Select a cell that uses the format " & _           "for which you want to search", _           Type:=8)



If rFind Is Nothing Then             If MsgBox("Do you want to quit?", vbYesNo) = vbYes Then                 Exit Sub             ElseIf InStr(1, rFind.Address, ":", vbTextCompare) > 0 Then                 MsgBox "Please select only one cell."

Set rFind = Nothing             End If         End If     Loop Until Not rFind Is Nothing     sOldFormat = rFind.NumberFormat

' Determine the new format     Do         Set rReplace = Application.InputBox( _           prompt:="Select a cell using the new format", _           Type:=8)



If rReplace Is Nothing Then             If MsgBox("Do you want to quit?", vbYesNo) = vbYes Then                 Exit Sub             ElseIf InStr(1, rReplace.Address, ":", vbTextCompare) > 0 Then                 MsgBox "Please select only one cell."

Set rReplace = Nothing             End If         End If     Loop Until Not rReplace Is Nothing     sNewFormat = rReplace.NumberFormat

' Do the replacing     For Each ws In ActiveWorkbook.Worksheets         For Each rNextCell In ws.UsedRange             If rNextCell.NumberFormat = sOldFormat Then                 rNextCell.NumberFormat = sNewFormat             End If         Next rNextCell     Next ws     MsgBox "The selected format has been changed."

End Sub

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(9865)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: