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