将Excel VBA宏应用于所有高亮显示的单元格

将Excel VBA宏应用于所有高亮显示的单元格,vba,excel,Vba,Excel,提前感谢您,我对excel VBA非常陌生。这个问题可能很简单,但我还没有在广泛的搜索中找到答案。我最初录制了这个宏,并用我在网上找到的东西对它进行了调整。如果一次应用于一个单元格(或者拖动多行,将在最左上角单元格的行上使用),则此宏有效。是否有一种方法可以进一步调整它,使我的宏将更改应用于所有选定单元格的行,以便用户可以批量更改行 Range("A" & ActiveCell.Row & ":I" & ActiveCell.Row).Select With Select

提前感谢您,我对excel VBA非常陌生。这个问题可能很简单,但我还没有在广泛的搜索中找到答案。我最初录制了这个宏,并用我在网上找到的东西对它进行了调整。如果一次应用于一个单元格(或者拖动多行,将在最左上角单元格的行上使用),则此宏有效。是否有一种方法可以进一步调整它,使我的宏将更改应用于所有选定单元格的行,以便用户可以批量更改行

Range("A" & ActiveCell.Row & ":I" & ActiveCell.Row).Select
With Selection.Interior
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorDark1
    .TintAndShade = -0.249977111117893
    .PatternTintAndShade = 0
End With
Range("A" & ActiveCell.Row).Select
ActiveCell.FormulaR1C1 = "5"
Range("B" & ActiveCell.Row & ":I" & ActiveCell.Row).Select
With Selection.Font
    .Name = "Calibri"
    .FontStyle = "Regular"
    .Size = 11
    .Strikethrough = True
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .TintAndShade = 0
    .ThemeFont = xlThemeFontMinor
End With
Range("B" & ActiveCell.Row).Select

结束Sub

也许这就是你想要的

'Instead of this:
'Range("A" & ActiveCell.Row & ":I" & ActiveCell.Row).Select
'Do this:
With Application.Intersect(Selection.EntireRow, Range("A:I")).Interior
'The range at hand is now all the cells in the rows of the selection, 
'  but limited to columns A:I.
'Notice we haven't actually modified the selection
    .Pattern = xlSolid
    .PatternColorIndex = xlAutomatic
    .ThemeColor = xlThemeColorDark1
    .TintAndShade = -0.249977111117893
    .PatternTintAndShade = 0
End With
'Range("A" & ActiveCell.Row).FormulaR1C1 = "5"
Application.Intersect(Selection.EntireRow, Range("A:A")).FormulaR1C1 = "5"
'Range("B" & ActiveCell.Row & ":I" & ActiveCell.Row).Select
With Application.Intersect(Selection.EntireRow, Range("B:I")).Font
    .Name = "Calibri"
    .FontStyle = "Regular"
    .Size = 11
    .Strikethrough = True
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    .TintAndShade = 0
    .ThemeFont = xlThemeFontMinor
End With
Range("B" & ActiveCell.Row).Select

注意:无需
。选择一个范围,然后执行
操作。您通常可以对范围应用
某些内容。您开始使用的是典型的宏录制器代码,只需知道有一种更干净的方法。

是的,这正是我想要的。谢谢你的帮助!有没有办法让宏让用户在运行宏之前选择相同的单元格?例如,如果按住Ctrl键并单击多个单元格,然后将此格式化宏应用于这些单元格,则随后会选择相同的单元格?谢谢当然可以——只需注释掉最后一行,使其看起来像
”范围(“B”&ActiveCell.Row)。选择