EXCEL VB工作表sheet的常用操作

2021-01-10 18:11发布

站内文章 / 软件 / 类型:默认类型

1. sheet的常用函数

1.1 Sheet工作表的创建和删除

 

Sheets(1).Activate

On Error Resume Next

 

If Not (Sheets("新sheet名称") Is Nothing) Then

    Application.DisplayAlerts = False

    Sheets("新sheet名称").Delete

    Application.DisplayAlerts = True

End If

Sheets.Add After:=ActiveSheet

ActiveSheet.Name = "新sheet名称"

Sheets("新sheet名称").Select

image.png

1.2 sheet工作表的引用

1.2.1 通过ID引用

Sheet的赋值,可以用ID来指定Sheet表,Sheet的ID索引从1开始。

Sheets(1).Range("A1") = "Hello World"

image.png


1.2.2 Sheet的名称引用

Sheets("我的名称").Range("A1") = "Hello World"

 

 image.png

 

 

 

 

1.3 sheet工作表的行和列数

功能

代码


Sheet的A列单元格行数

rowNumber=ActiveSheet.[A65536].End(xlUp).Row

返回第A列单元格行数

Sheet的i列单元格行数

ActiveSheet.Range(Chr(64 + i) &   65536).End(xlUp).Row

返回第i列(A为第一列)单元格行数

Sheet第1行单元格列数

ActiveSheet.[IV1].End(xlToLeft).column

返回第1行单元格列数

Sheet的Var1行单元格列数

ActiveSheet.Range("IV" & var1).End(xlToLeft).column  

返回第var1行单元格列数

每种方法中上面的是 Excel 的行数,下面的是 Excel 的列数。
方法1:
  ActiveSheet.UsedRange.Rows.Count   
  ActiveSheet.UsedRange.Columns.Count
      
缺点:有时可能会比实际数大一些,原因是如果你把最后几行(列) 数据 清除后(非整行或整列删除),用这个命令仍返回未清除前的值。就是说现在虽然是空的,但是你曾经用过也算你的。

方法2:
  ActiveSheet.Range("A65535").End(xlUp).Row
  ActiveSheet.Range("IV1").End(xlToLeft).Column
  可以简写为:
  ActiveSheet.[A65536].End(xlUp).Row
  ActiveSheet.[IV1].End(xlToLeft).Column
      
缺点:只能计算出一列(行)的最后一个 单元格 所在的行(列)数。本例是只返回A列最后一个 单元格 所占的行数。

方法3:
  ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
  ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column
  缺点:在工作表进行对删除或清除操作时也会变得比实际情况大。

方法4:
  ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
  ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
  缺点:在工作表进行对删除或清除操作时也会变得比实际情况大。

方法5
  Application.CountA(ActiveSheet.Range("A:A"))
  Application.CountA(ActiveSheet.Range("1:1"))
  只能统计一列(行)的实际使用情况,得到的不一定是 最后一行 (列)的 位置 。方法2的数值比此方法大时,说明在A列的数据间有空白未填写的单元格。

方法6
  ActiveSheet.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
  ActiveSheet.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
  效果同方法2


以上方法中比较常用的是方法1和方法2

1.4 Sheet滚动条控制

滚动到第一行

Sheets(2).Activate

ActiveWindow.SmallScroll Down:=-240


赞赏支持