如何开始我的macros,我点击而不是设置单元格

反正有我的macro开始突出或select一个empty cell而不是总是把数据放在同一范围内? 我知道如何编辑代码本身只是不知道是否有一个不同的function,我可以使用,而不是通过使用特定的单元格位置设置范围石头。

我想让macros开始,我突出显示….无论是单个单元格还是突出显示4或5,并使macros在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 

将下面的代码粘贴到工作表中(在macros编辑器中,双击要执行此代码的工作表,然后粘贴它)。

 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行,然后坚持公式。

如果删除选定的行,它将在当前选定的单元格(activecell)

所以

 activecell.value = "This is the current cell" 

将键入这是您select的单元格的当前单元格

你如何处理多个单元格取决于你正在尝试做什么,因为在这里你有一组独立的单元格执行一系列的行动。

如果要将所有选中的单元格设置为相同的值,则可以使用

 selection.value = "These are the current cells" 

select也适用于大多数事情select1个单元格。