VBA基础五:单元格cell操作例子

例一、用cells(行,列)定位

Private Sub CommandButton1_Click()
Cells(12, 6) = IIf(Cells(1, 2) > 80, "优秀", "不优秀")
'cells(2,3)表示第12行第6列位置显示后面的判断内容结果

Cells(13, 6) = IIf(Cells(1, 11) <> "", "第一行第1列的内容是:" & Cells(1, 11), "空白")
‘在13行第6列显示等号后面的结果:如果单元格第1行1列不为空白,则显示,第一行第1列的内容是:+第1行第11列的内容,否则显示“空白”
End Sub

 

例二、用Sheet1.Range("a1:a10") 定位

'方法:实际上就是对对象的操作,它是一种动作,一种行为。

Sub 选择方法()
Range("a1:a10").Select
'注:如果单元格区域前没有写工作表名,则默认为活动工作表
End Sub

Sub 复制方法()
Sheet1.Range("a1:a10") = 1    '将1写入表一的a1:a10区域
Sheet1.Range("a1:a10").Copy Sheet2.Range("a1")    '将表一的a1:a10区域的值复制到表2的a1
End Sub


Sub 删除方法()
Sheets(3).Delete  '将一个叫3的表格删除掉,删除时会弹出确认警告
'工作表如果是数字()中不用引号,如果是汉字要加引号,否则提示错误9“下标越界”

Sheets("成绩").Delete '将一个表名为“成绩”的工作表删除,会弹出确认窗口

End Sub

 

例三:EXCEL VBA 怎样删除某一列符合某个条件的行

Private Sub CommandButton1_Click()

Dim c%, i%
c = Cells(Rows.Count, 4).End(3).Row
For i = c To 1 Step -1
If Cells(i, 4) = "" Then Rows(i).Delete  '删除第4列(D列)的所有空白行,如果只指定一行,把i换成具体哪一行就行了
Next

End Sub

如果删除第3行,可以用语句:
rows(3).delete

同时删除第3行和第3列

Sheet1.Rows(3).Delete
Sheet1.Columns(3).Delete

 

Private Sub CommandButton1_Click()

For c = ActiveSheet.UsedRange.Columns.Count To 1 Step -1
If Application.CountIf(Columns(c), 0) > 10 Then Columns(c).Delete
Next
End Sub

清空单元格中的数据或公式

代码: Columns("E:E").ClearContents
作用:清除E列的内容
如果要清除所有(公式,条件...)将代码改为 Columns("E:E").Clear
如果要删除zhi其他列,直接将括弧内的E:E改为需dao要的列即可。

 

例四:求第一列的有数据的单元格最大行号、列号

Private Sub CommandButton2_Click()
Dim m, n
m = ActiveSheet.UsedRange.Cells(1, 1).Row + ActiveSheet.UsedRange.Rows.Count - 1
n = ActiveSheet.UsedRange.Cells(1, 1).Column + ActiveSheet.UsedRange.Columns.Count - 1
Cells(14, 5) = m
Cells(15, 5) = n
End Sub

一般用range.end找最后的行、列
你这种情况可以用UsedRange.SpecialCells(xlCellTypeLastCell)

Private Sub CommandButton2_Click()
Dim m
m = UsedRange.SpecialCells(xlCellTypeLastCell)  '用户活动单元格的最后一行,哪怕不同列的行长短不一样

Cells(14, 5) = m  ' 在此单元格显示最后一行的文字内容

End Sub

 

Private Sub CommandButton2_Click()
With UsedRange.SpecialCells(xlCellTypeLastCell)
MsgBox "总共有" & .Row & "行,有" & .Column & "列"
End With
MsgBox "A列最后1行的行号是: 第" & Range("A1048576").End(xlUp).Row & "行"
MsgBox "第1行最后1列的列号是: 第" & Range("XFD1").End(xlToLeft).Column & "列"
End Sub

 

2003版最大行数是65536行,最大列数是256列。Excel2007及以后的版本最大行数是1048576行,最大列数是16384列。

获取当前位置的行号和列号

=COLUMN()

=row()

 

posted @ 2020-07-14 11:57  袁氏家谱网  阅读(1698)  评论(0编辑  收藏  举报