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()