替换单元格格式(Microsoft Excel)
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及更高版本)找到本技巧的版本: