Excel 如何创建仅在所选单元格上运行的宏?
到目前为止,我对宏和VBA的经验仅限于在单元格中创建一个用于着色的按钮,因此,如果这是一个可能的简单解决方法,您将不得不原谅这一点 我有一个模板表,每周都会在其中粘贴包含标题和任务的数据-我只想过滤标题,然后格式化这些行并取消过滤,使用宏自动执行 为此,我录制了以下内容:-Excel 如何创建仅在所选单元格上运行的宏?,excel,vba,Excel,Vba,到目前为止,我对宏和VBA的经验仅限于在单元格中创建一个用于着色的按钮,因此,如果这是一个可能的简单解决方法,您将不得不原谅这一点 我有一个模板表,每周都会在其中粘贴包含标题和任务的数据-我只想过滤标题,然后格式化这些行并取消过滤,使用宏自动执行 为此,我录制了以下内容:- ActiveSheet.Range("$A$4:$H$413").AutoFilter Field:=2, Criteria1:="=" ActiveWindow.SmallScroll Down:=-9
ActiveSheet.Range("$A$4:$H$413").AutoFilter Field:=2, Criteria1:="="
ActiveWindow.SmallScroll Down:=-9
Range("A5:L168").Select
Range("A168").Activate
Selection.SpecialCells(xlCellTypeVisible).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 3394611
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Selection.Font.Bold = True
Range("I5:L168").Select
Range("L168").Activate
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.ClearContents
Range("C5:H168").Select
With Selection.Font
.Color = -13382605
.TintAndShade = 0
End With
ActiveSheet.Range("$A$4:$H$413").AutoFilter Field:=2
Range("A4").Select
但是,每次运行宏时都会格式化相同的行,因此,当将不同的数据粘贴到包含位于不同位置的标题的模板中时,宏驱动的格式化不会拾取标题行
有没有办法调整范围,以便宏仅应用于用户选择的某些单元格,例如在过滤数据时剩余的可见行?选择要更改的单元格。它们不需要是连续的 此代码在选定单元格中循环并将背景颜色更改为蓝色:
For Each i In Selection
i.Interior.ColorIndex = 5
Next i
第1步:第2步:为每个选择使用a或在选择时使用。第0步:确保选择的类型为Excel。范围CC@Chronocidal如是说,您不必关心选择-您可以计算出最后一行是什么,然后使用.RangeA4:H&lastRow格式化整个表格上面的代码可以工作,因为当前工作表上的选择返回一个包含选定单元格列表的范围对象。在循环中,在每个循环迭代中将一个单元对象分配给变量i。因此,您可以将在任何单元格对象上使用的任何属性或方法分配或返回给i。