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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM