我从上周开始就一直在寻找宏,但至今没有找到。如果您能帮我解决我面临的问题,我将不胜感激,我已经创建了 excel 模板(用于编码列表)。
我正在寻找的是:
在 B 列中,我们需要根据两个单元格中指定的值在活动单元格中放置序列号(连续数),例如(A1 = 起始序列号:5)和(A2 = 结束序列号:25)我需要的是 B 列中,无论单元格处于活动状态,起始和结束范围由我(用户)提供,我单击宏按钮,它将生成从活动单元格向下提供的起始和结束范围的序列号。
希望你明白我的意思。
答案1
如果我理解了你想要什么,这个宏应该对你有用。它会检查以确保:
- 用户已选择 B 列中的单元格作为新系列
- 用户输入的系列的结束值大于起始值
- 在插入新系列之前,B 列中的现有值已被清除。
如果任何条件不满足,宏将警告用户并且退出,而不将新系列添加到工作表中。
Sub NewSeries2()
Dim seriesRng As Range
Dim stepSize As Double
Dim stopValue As Double
If Intersect(Selection, Range("B:B")) Is Nothing Then
MsgBox "Please select a cell in column B to start the series."
Exit Sub
ElseIf Range("A2").Value <= Range("A1").Value Then
MsgBox "Ending value of the series cell A2 must be greater then the starting value in cell A1."
Exit Sub
ElseIf WorksheetFunction.CountA(Range("B:B")) <> 0 Then
MsgBox "Please delete the existing values in column B."
Exit Sub
Else
stepSize = 1
stopValue = Range("A2").Value
Selection.Value = Range("A1").Value
Selection.DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, _
Step:=stepSize, Stop:=stopValue, Trend:=False
End If
End Sub