Excel VBA Sheet1和Sheets(1)的区别

Sheet1     sheet表内置的名字,这里的 数字1 相当于id。永远不会改变。
Sheets(1)  这里的 1 是指索引,当前排在第一个的sheet表。根据我们拖动表
的位置的改变而改变。

图一:
在这里插入图片描述
图二:
在这里插入图片描述

图一中命名为“Sheet1”的工作表,在表二中可以看出它的内置名字是Sheet3,即使重命名为“Sheet1”,它实际上还是Sheet3。
此时Sheets(1) 指当前排在第一个的工作表,即图一中的“Sheet1”表。

Sub test()
    Debug.Print Sheets(1).Name
    Debug.Print Sheet3.Name
End Sub
---------------------------------------
Sheet1
Sheet1

Sheet1指内置名字叫Sheet1的工作表,即图一中的hahha表。此时hahha表排在图一中的第二个。用Sheets(2)才能定位到。

Sub test()
    Debug.Print Sheet1.Name
    Debug.Print Sheets(2).Name
End Sub
-----------------------------------------
hahaha
hahaha
Excel VBA中,如果你想要按照某个列表的顺序对工作表(Sheet)进行排序,可以通过编写宏来实现。这里是一个简单的示例,它将根据工作表中某列的数据进行排序: 1. 打开Excel工作簿。 2. 按下 `Alt + F11` 打开VBA编辑器。 3. 在VBA编辑器中,插入一个新的模块(Insert > Module)。 4. 将以下代码复制并粘贴到模块中: ```vba Sub SortSheetByList() Dim ListRange As Range Dim SortRange As Range Dim KeyCell As Range Dim i As Long ' 设置列表范围,这里假设是Sheet1的A1:A10 Set ListRange = ThisWorkbook.Sheets("Sheet1").Range("A1:A10") ' 设置需要排序的数据范围,这里假设是整个Sheet1 Set SortRange = ThisWorkbook.Sheets("Sheet1").UsedRange ' 按照列表的顺序对每行进行排序 For i = 2 To ListRange.Rows.Count Set KeyCell = ListRange.Cells(i, 1) ' 对比每一行的排序关键字与列表中的关键字 SortRange.Sort Key1:=KeyCell, Order1:=xlAscending, Orientation:=xlTopToBottom, _ Header:=xlYes Next i End Sub ``` 5. 修改代码中的`Sheet1`和`A1:A10`为你需要的实际工作表名和列表范围。 6. 通过`SortRange.Sort`方法来执行排序。这里的`Key1`参数是排序的依据,`Order1`是排序方式(升序或降序),`Orientation`是排序的方向,`Header`表示数据是否包含标题行。 7. 运行这个宏,工作表中的数据将根据指定的列表范围进行排序。 请注意,在执行排序操作之前,确保你的数据是准备好的,特别是列表范围和排序范围需要准确无误。如果工作表中的数据非常多,排序操作可能会消耗较多的系统资源。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值