vba - 循环 1 到 n 直到行结束
问题描述
基本上,我有一个名单,我想将它们分成 n 个组,例如 4 个。
我在 A 列中有名称,在 D 列中有组号,我的代码似乎有效,如下所示:
Private Sub CommandButton1_Click()
Dim S As Long, E As Long, I As Long, N As Long, a As Long, b As Long
With ActiveSheet
N = .Cells(Rows.Count, 2).End(xlUp).Row
.Range(Cells(2, 4), Cells(N, 4)).ClearContents
S = 1 'smallest number
E = 4 'largest numbr
I = N / 4 'times of repeat
N = 1
For a = 1 To I Step 1
For b = S To E Step 1
.Cells(N + 1, 4).Value = b
N = N + 1
Next b
Next a
End With
End Sub
这种设计的问题是,如果行数没有被 4 整除,则会创建一个空白行,并输入剩余的数字。遗憾的是,这不是我想要的,因为我需要连接数据并将它们合并到 Word 中。当前的解决方案将为我生成的文档创建空白条目。
我想知道是否有人可以帮助我,因为我不是 VBA 专家。
解决方案
我想我找到了一个愚蠢的解决方案,只需通过检测 A 列的单元格为空的位置来删除整行
On Error Resume Next
Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
推荐阅读
- typescript - 检查 Typescript 中对象的属性是否为空
- sql-server - 我怎么知道许多组有不同国家的客户
- c# - 使用非字符串作为字符串时如何显示错误(而不是自动使用 ToString)?
- python - 线性搜索打印找到和未找到列表中存在的值
- excel-formula - 使用 if isnumber 或
- mysql - CASE 返回多行
- xamarin - 有没有办法在 Xamarin.Forms 的同一页面中插入导航栏和选项卡栏?
- image-resizing - 未调整大小的图像的内容长度为 0 并且缺少内容类型
- sql - 如何将序数日期更改为 MMDDYYYY
- wso2 - 如何使用计时器之类的东西进行流查询?