Excel VBA 學習筆記14:單元格編輯示例

聲明:本系列文章是學習藍色幻想視頻和《別怕,Excel VBA其實很簡單》的

筆記總結,知識版權歸上述兩作品所有,圖片均來自藍色幻想視頻。

Excel VBA 學習筆記14:單元格編輯示例

一、單元格輸入

1. 單元格輸入

Excel VBA 學習筆記14:單元格編輯示例

&符號是連接符,能將前後內容連接到一起,注意,變量不需要加雙引號,非變量記得加雙引號。

ASCII碼10代表換行符,即alt+enter,13代表回車,32代表空格。這些常見的希望大家能有個印象。

2. 單元格複製和剪切

Excel VBA 學習筆記14:單元格編輯示例

用copy方法可以將選中內容複製到剪切板,然後指定目標區域的頂點即可,這是複製粘貼的基礎知識,後面會逐步增加些新的知識點。

Excel VBA 學習筆記14:單元格編輯示例

粘貼到當前活動表格的D1單元格。

Excel VBA 學習筆記14:單元格編輯示例

選擇性粘貼,只有值,具體每種選擇性粘貼用哪個代碼請大家自己錄製宏比較一下代碼。

Range.PasteSpecial 方法

將 Range 從剪貼板粘貼到指定的區域中。

語法

表達式.PasteSpecial(Paste, Operation, SkipBlanks, Transpose)

表達式 一個代表 Range 對象的變量。

參數

名稱 必選/可選 數據類型 說明

Paste 可選 XlPasteType 要粘貼的區域部分。

Operation 可選 XlPasteSpecialOperation 粘貼操作。

SkipBlanks 可選 Variant 如果為 True,則不將剪貼板上區域中的空白單元格粘貼到目標區域中。默認值為 False。

Transpose 可選 Variant 如果為 True,則在粘貼區域時轉置行和列。默認值為 False。

================

XlPasteType

名稱 值 說明

xlPasteAll -4104 粘貼全部內容。

xlPasteAllExceptBorders - 7 粘貼除邊框外的全部內容。


xlPasteAllMergingConditionalFormats -14 將粘貼所有內容,並且將合併條件格式。


xlPasteAllUsingSourceTheme -13 使用源主題粘貼全部內容。

xlPasteColumnWidths -8 粘貼複製的列寬。

xlPasteComments -4144 粘貼批註。

xlPasteFormats -4122 粘貼複製的源格式。

xlPasteFormulas -4123 粘貼公式。


xlPasteFormulasAndNumberFormats -11 粘貼公式和數字格式。

xlPasteValidation -6 粘貼有效性。

xlPasteValues -4163 粘貼值。


xlPasteValuesAndNumberFormats 12 粘貼值和數字格式。

======

XlPasteSpecialOperation

名稱 值 說明


xlPasteSpecialOperationAdd -2 複製的數據與目標單元格中的值相加。


xlPasteSpecialOperationDivide -5 複製的數據除以目標單元格中的值。


xlPasteSpecialOperationMultiply -4 複製的數據乘以目標單元格中的值。


xlPasteSpecialOperationNone -4142 粘貼操作中不執行任何計算。


xlPasteSpecialOperationSubtract -3 複製的數據減去目標單元格中的值。

Excel VBA 學習筆記14:單元格編輯示例

剪切的用法。

Excel VBA 學習筆記14:單元格編輯示例

在使用選擇性粘貼的時候非常讚的一個功能,直接將剪切板上的數據跟原數據相加,不需要設置輔助列。

Excel VBA 學習筆記14:單元格編輯示例

這個例子就不再是複製的代碼了,但是同樣實現了複製數值的功能。

3. 填充公式

Excel VBA 學習筆記14:單元格編輯示例

填充柄是Excel利用率非常高的操作,VBA中實現也很簡單,就是定好要填充的區域,向下用FillDown,向右用FillRight。注意,如果自定義公式填充的話,起始位置一定要有公式!

二、單元格行列的刪除和插入

這裡我們做一個稍微大一點的例子,從學習插入行和列開始,一步一步到實現數據分類彙總。

1.插入行

Excel VBA 學習筆記14:單元格編輯示例

基礎語法,學起來。在第4行前插入一行。記住,默認情況下,插入操作跟手動操作表格一樣,都是在選中的行或列以前插入。要插入多行或列,跟手動操作一樣,你選中幾個就一次插入幾個,比如Rows(4:10).Insert Shift:=xlDown,插入了7行。

2.插入行並複製公式

Excel VBA 學習筆記14:單元格編輯示例

繼續深入探究,在第4行前面插入一行,現在空白行是第4行,原來的第4行成了第5行,要把第3行公式複製填充下來,並且定位第4行的空單元格。Range的SpecialCells就相當於Ctrl + G 定位,

xlCellTypeConstants是指含有常量的單元格。

3.插入多個空白行

Excel VBA 學習筆記14:單元格編輯示例

要做分類彙總就要實現每一個類別下面都插入一行。這裡判斷出值不一樣的地方,然後插入了一行,但是要注意新插入的那行會佔用一個行號。有多少類就會插入多少行,所以x的循環值要設置的比表格多很多,而且這裡不能用變量,因為插入一行整個表格會多一行。

4.分類彙總

(1)實現簡單的分類彙總

Excel VBA 學習筆記14:單元格編輯示例

我們將前面學的慢慢組裝到一起,來實現簡單的分類彙總功能。上面提到x的循環範圍要比表格真實行數多,以免分類多插入行數多造成有的數據沒有被彙總到。這段代碼的思路比較直觀,用兩個變量m1和m2存儲當前分類的開始位置和結束位置,然後彙總m1到m2之間的數值,其中用到了向右填充。m1的初始值很好確定,是表格固定好的,關鍵在於第一類彙總完,從第二類開始怎麼表示,圖中有註釋,請大家仔細思考。

(2)藍色幻想個人方法

Excel VBA 學習筆記14:單元格編輯示例

前面我們的代碼有個問題,已經提到兩次了,x的循環值要人為設置的比表格真實值大,可是我怎麼知道該設置多大,難不成每次都循環到65536嗎?藍色幻想給了他的個人辦法,這也是編程吸引我的地方,你要不斷的去思考,總有更好的辦法解決問題!跟上節課合併單元格一樣,我們倒著循環。具體代碼可能稍微有些難度,等看的多了就理解了。

(3)刪除彙總行

Excel VBA 學習筆記14:單元格編輯示例

分類彙總完了要把彙總行刪除,我們用的定位A列空白單元格的方式,然後刪除整行,這個方法適用於很多場合。

Excel VBA 學習筆記13:單元格的格式

Excel VBA 學習筆記12:單元格信息


Excel VBA 學習筆記11:特殊單元格定位

Excel VBA 學習筆記10:單元格的選取


分享到:


相關文章: