无论如何我的macro
开始突出显示或选择empty cell
,而不是始终将数据放在同一范围内?我知道如何编辑代码本身只是不知道我是否可以使用不同的功能,而不是通过使用特定的单元格位置来设置范围。
我希望宏在我突出显示的地方开始....无论是单个单元格还是突出显示4或5并且宏在这些4或5中运行..
Sub macroforme() ' ' macrowork Macro '
Range("H19").Select
ActiveCell.FormulaR1C1 = "Legacy"
Range("H18").Select
ActiveCell.FormulaR1C1 = "Field Service"
Range("H17").Select
ActiveCell.FormulaR1C1 = "Supply Chain"
Range("H16").Select
ActiveCell.FormulaR1C1 = "Engineering"
Range("H15").Select
ActiveCell.FormulaR1C1 = "Sales"
Range("I15").Select
Columns("H:H").ColumnWidth = 11.71
Range("I15").Select
ActiveCell.FormulaR1C1 = "=SUMIF(C[-5],Legacy)"
Range("I15").Select
ActiveCell.FormulaR1C1 = "=SUMIF(C[-5],""Sales*"",C[-8])"
Range("I16").Select
ActiveCell.FormulaR1C1 = "sumif"
Range("I16").Select
ActiveCell.FormulaR1C1 = "=SUMIF(C[-5],Engineering)"
Range("I16").Select
ActiveCell.FormulaR1C1 = "=SUMIF(C[-5],""Engineering"",C[-8])"
Range("I17").Select
ActiveCell.FormulaR1C1 = "=SUMIF(C[-5],""Supply Chain"",C[-8])"
Range("I18").Select
ActiveCell.FormulaR1C1 = "=SUMIF(C[-5],""Field Service"",C[-8])"
Range("I19").Select
ActiveCell.FormulaR1C1 = "=SUMIF(C[-5],""Legacy"",C[-8])"
Range("I20").Select
End Sub
答案 0 :(得分:1)
将下面的代码粘贴到工作表中(在宏编辑器中,双击要执行此代码的工作表,然后将其粘贴到其中)。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.Offset(0, 0).FormulaR1C1 = "Legacy"
Target.Offset(-1, 0).FormulaR1C1 = "Field Service"
Target.Offset(-2, 0).FormulaR1C1 = "Supply Chain"
Target.Offset(-3, 0).FormulaR1C1 = "Engineering"
Target.Offset(-4, 0).FormulaR1C1 = "Sales"
Target.ColumnWidth = "11.71"
'Next Column
Target.Offset(-4, 1).FormulaR1C1 = "=SUMIF(C[-5],""Legacy*"",C[-8])"
Target.Offset(-3, 1).FormulaR1C1 = "=SUMIF(C[-5],""Engineering"",C[-8])"
Target.Offset(-2, 1).FormulaR1C1 = "=SUMIF(C[-5],""Supply Chain"",C[-8])"
Target.Offset(-1, 1).FormulaR1C1 = "=SUMIF(C[-5],""Field Service"",C[-8])"
Target.Offset(0, 1).FormulaR1C1 = "=SUMIF(C[-5],""Legacy"",C[-8])"
End Sub
这将使您的硬编码代码执行相同的操作,但它将在双击单元格时执行。此示例中的Target
是您双击的单元格。偏移量会移动您指定的许多行和列。因此,在Target.Offset(-4, 1).FormulaR1C1 = "=SUMIF(C[-5],""Legacy*"",C[-8])"
行中,它表示移动1列,最多4行,然后粘在公式中。
答案 1 :(得分:0)
如果删除选择行,它将适用于当前选定的单元格(activecell)
所以
activecell.value = "This is the current cell"
会在您选择的那个中输入这是当前单元格。
如何处理所选择的多个单元格取决于您要执行的操作,因为您需要在一堆独立单元格上执行一系列操作。
如果要将所有选定的单元格设置为相同的值,可以使用
selection.value = "These are the current cells"
选择也适用于为大多数事情选择的1个单元格。