您的位置:首頁>正文

VBA|使用Range物件05:操作儲存格

用戶可對儲存格進行多種操作, 如, 輸入資料、刪除資料、設置公式、複製資料、合併和拆分儲存格等操作。 這些操作可以直接在儲存格上進行, 也可以使用VBA代碼。

目錄

1 用Formula屬性給儲存格設置公式

2 用PasteSpecial方法粘貼公式

3 用CVErr函數給儲存格設置錯誤值

4 用IsError函數判斷錯誤類型

5 用PrintArea屬性設置列印範圍

6 用Merge方法合併儲存格

7 用UnMerge方法拆分儲存格

8 用ScrollArea屬性限制儲存格移動範圍

9 用Clear方法清除儲存格

10 用Delete方法刪除儲存格區域

1 用Formula屬性給儲存格設置公式

常見的寫法如下:

Sheet1.Range("A1").Formula = "=$A$4+$A$10"

Sheet1.Range("A1").Formula = "=SUM(B2:D2)"

Sheet1.Range("A1").FormulaR1C1 = "=SQRT(R1C1)"

2 用PasteSpecial方法粘貼公式

Sub 複製公式()

Dim i As Integer

With Sheet1

.Range("E2").Copy

For i = 3 To 5

.Range("E" & i).PasteSpecial Paste:=xlPasteFormulas

Next

End With

End Sub

3 用CVErr函數給儲存格設置錯誤值

Sub 設置錯誤值()

Dim arr1, i As Integer

arr1 = Array(xlErrNull, xlErrDiv0, xlErrValue, xlErrRef, _

xlErrName, xlErrNum, xlErrNA)

For i = 1 To 7

ActiveSheet.Cells(8, i).Value = CVErr(arr1(i - 1))

Next i

End Sub

4 用IsError函數判斷錯誤類型

Sub 判斷錯誤類型()

Dim err_val

If IsError(ActiveCell.Value) Then

err_val = ActiveCell.Value

Select Case err_val

Case CVErr(xlErrDiv0)

MsgBox "#DIV/0! error"

Case CVErr(xlErrNA)

MsgBox "#N/A error"

Case CVErr(xlErrName)

MsgBox "#NAME? error"

Case CVErr(xlErrNull)

MsgBox "#NULL! error"

Case CVErr(xlErrNum)

MsgBox "#NUM! error"

Case CVErr(xlErrRef)

MsgBox "#REF! error"

Case CVErr(xlErrValue)

MsgBox "#VALUE! error"

Case Else

MsgBox "不可識別錯誤!"

End Select

End If

End Sub

5 用PrintArea屬性設置列印範圍

Sub 設置列印範圍()

Dim str1 As String

str1 = ActiveSheet.UsedRange.Address

ActiveSheet.PageSetup.PrintArea = str1

str1 = ""

End Sub

6 用Merge方法合併儲存格

Range("A1","C3").Merge

7 用UnMerge方法拆分儲存格

Sub 拆分儲存格()

Dim rng As Range

If Not Selection.MergeCells Then

MsgBox "選中區域不是合併區域!"

Exit Sub

End If

Selection.UnMerge '拆分儲存格

For Each rng In Selection '逐個處理選中區域的儲存格

If rng = "" Then '若目前的儲存格為空

rng = rng.Offset(-1, 0).Value '取上一儲存格的值

End If

Next

End Sub

8 用ScrollArea屬性限制儲存格移動範圍

Sub 限制移動範圍()

Dim rng1 As Range, str1 As String

Set rng1 = ActiveCell.CurrentRegion

str1 = rng1.Address

MsgBox "將儲存格的移動範圍限制在儲存格當前區域 " & str1 & " 之內"

ActiveSheet.ScrollArea = str1

End Sub

Sub 解除範圍限制()

MsgBox "解除移動範圍限制"

ActiveSheet.ScrollArea = ""

End Sub

9 用Clear方法清除儲存格

Sheet1.Range("A1:G37").clear '清除儲存格區域中的內容、公式、格式設置

Sheet1.Range("A1:G37").clearContents '清除儲存格區域中的內容

Sheet1.Range("A1:G37").clearFormats '清除儲存格區域中的格式設置

Sheet1.Range("A1:G37").clearComments '清除儲存格區域中的批註

10 用Delete方法刪除儲存格區域

Sub 刪除儲存格()

Dim rng1 As Range

Set rng1 = Selection

rng1.Delete (xlShiftToLeft)

Set rng1 = Nothing

End Sub

-End-

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示