List Excel-将值列表转换为范围
您能让我知道在Excel中是否可以执行以下操作吗 我有一个数字列表,即:List Excel-将值列表转换为范围,list,excel,range,vba,List,Excel,Range,Vba,您能让我知道在Excel中是否可以执行以下操作吗 我有一个数字列表,即: 1 2 3 4 6 7 8 9 11 14 16 17 18 我希望这些数字的格式如下: 1-4, 6-9, 11, 14, 16-18 如果有可能或者您有任何问题,请告诉我 多谢各位 M我们的想法是在数字之间循环,每个新数字要么扩展当前范围,要么开始一个新范围。一种可能的实施方式如下: Sub GroupInRanges(): Dim S As Range, R As Range Dim i As L
1
2
3
4
6
7
8
9
11
14
16
17
18
我希望这些数字的格式如下:
1-4, 6-9, 11, 14, 16-18
如果有可能或者您有任何问题,请告诉我
多谢各位
M我们的想法是在数字之间循环,每个新数字要么扩展当前范围,要么开始一个新范围。一种可能的实施方式如下:
Sub GroupInRanges():
Dim S As Range, R As Range
Dim i As Long, j As Long, n As Long
Dim num As Long, startNum As Long, endNum As Long
Set S = Application.InputBox("Select range containing numbers", Type:=8)
Set R = Application.InputBox("Select first cell of output range", Type:=8)
n = S.Cells.Count
startNum = S.Cells(1).Value
endNum = startNum
For i = 1 To n
num = S.Cells(i).Value
If num <= endNum + 1 Then
'extend current number range
endNum = num
Else
'process the just-completed data range
R.Offset(j).Value = IIf(startNum < endNum, startNum & "-" & endNum, endNum)
j = j + 1
startNum = num 'starts a new number range
endNum = startNum
End If
Next i
'process final range
R.Offset(j).Value = IIf(startNum < endNum, startNum & "-" & endNum, endNum)
End Sub
子组范围()
调暗S为范围,R为范围
暗i为长,j为长,n为长
Dim num尽可能长,startNum尽可能长,endNum尽可能长
设置S=Application.InputBox(“选择包含数字的范围”,类型:=8)
设置R=Application.InputBox(“选择输出范围的第一个单元格”,类型:=8)
n=S.Cells.Count
startNum=S.单元格(1).值
endNum=startNum
对于i=1到n
num=S.单元格(i).值
如果您想要的输出没有可识别的模式,那么我将说“不”,这是不可能的。当然,如果你解释一下模式会有帮助的话。模式是检查数字是否有序。如果缺少编号,则将创建新范围。例如123467911将创建1-4,6-7,9,11。好的,我现在明白了。那么,您希望输出在一个单元格中吗?每个连续分组一个单元格。我们不是读心术的人,所以试着把你的问题当成别人来读。哦,对不起。我希望每个范围都在单独的单元格中。感谢您您是否正在寻找VBA解决方案(几乎微不足道)或电子表格公式方法(虽然可行但相当困难)?还有,你试过什么?Stack Overflow主要是一个帮助人们解决代码中遇到的问题的站点,而不是一个按照规范编写代码的免费编码服务。