我需要用户用鼠标选择一系列单元格,然后运行宏到add +1
到所选范围。范围通常每次都不同,因此无法定义。
这是我到目前为止所做的,它只适用于单个活动单元格,我不能让它在范围选择上工作,因为我不知道要定义什么或使用什么功能。
我的代码关注:
Sub Add()
ActiveCell.Value = ActiveCell.Value + 1
End Sub
答案 0 :(得分:3)
以下代码使用内置的“粘贴特殊添加”功能为所选范围内的每个单元格添加1。
Sub AddOneToSelection()
Dim rBlank As Range
If TypeName(Selection) = "Range" Then
'Put a '1' in an unused cell and copy it
Set rBlank = ActiveSheet.Cells.SpecialCells(xlLastCell).Offset(1, 0)
rBlank.Value = 1
rBlank.Copy
'Paste Special Add over the selection
Selection.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlAdd
'Get rid of the copied cell
rBlank.ClearContents
End If
End Sub
这种过度循环的好处是,Paste Special Add会以不同的方式处理公式和值,而您不必自己编写该部分。
缺点是你将UsedRange增加一行,如果这对你很重要。
答案 1 :(得分:0)
这应该适合你:
Dim r, c As Range
Set r = Selection
For Each c In r
c.Value = "+1"
Next
这假设您的单元格格式将显示“+1”而不是“1”。您可以将单元格的格式设置为“文本”。