小白提问VBA 工作表排序问题?
发布网友
发布时间:2023-09-22 02:11
我来回答
共2个回答
热心网友
时间:2024-12-14 16:33
这段代码只对 A 列从 A2 开始向下的单元格有用。对于 B2 开始没有用:
For i = 2To sht.Cells(Rows.Count, 1).End(3).Row '从 A 列第 2行开始到 A列最后一行
'遍历工作表A列的数据,A1以外。
shtname = sht.Cells(i, 1) 'Cells(RowIndex, ColumnIndex),所以 1 表示第 1列,即 A 列
如果你想改到 C5:C20,那你就在这两句代码上做文章。
追问按照你的思路改成以下到了移动工作表工序还是会出错
For i = 5 To sht.Cells(Rows.Count, 3).End(3).Row
shtname = sht.Cells(i, 3)
上面是改了下面这个语句出问题,中间是不是该增加一个 i = 2 to shees.count
但就是不知道该怎么加。。。
Sheets(shtname).Move after:=Sheets(i - 1)
热心网友
时间:2024-12-14 16:34
原来的程序就是个错误!
Sub SortSheet()
Dim Arr, ShtName, i&, AcSht As Worksheet
Set AcSht = ActiveSheet
' 要排序的表名称数据区域
' 如果名称错误,就运行错误
' 如果名称重复且数量不超过总表数,不会报错但结果嘿嘿
Arr = [D4:D6]
For Each ShtName In Arr
i = i + 1
Worksheets(ShtName).Move Before:=Worksheets(i)
Next ShtName
AcSht.Activate
End Sub