原创 利用正則表達式提取漢字

利用正則表達式,可以編寫自定義函數來提取漢字。   在Excel界面按Alt+F11,然後插入一個模塊,添加如下代碼。   Function Hanzi(rng As Range) As String '正則表達式 With Cr

原创 編寫階乘計算精確值的自定義函數

整體思路就是利用數組存放每一位數字,模擬乘法規則進行計算。 Function MyFact(DNumber) Dim ArrJG, ArrTemp Dim SumA As Double Dim i&, j&

原创 屏蔽Excel中的公式錯誤

在Excel的公式運算中,經常可能出現錯誤,諸如#REF!,#N/A等錯誤其實時常發生。 當然,這些錯誤不一定是由於我們的公式錯誤而發生的。大多數情況下我們的公式可能是對的,錯誤是由於數據的原因而發生的。 那麼怎麼屏蔽這些錯誤,讓錯誤指不

原创 身份證號碼15位升18位的自定義函數

最近研究了一下身份證號碼升級的規則,真的很有趣。和17較上勁了。 Function 升級(Rng) On Error GoTo AA Dim StrT$, i%, SumM& If Len(Rng) = 18 Th

原创 利用API對VBA窗體設置

很多時候有人問到,怎麼樣弄使得VBA中的關閉窗口的按鈕消失啊。 其實在VBA中,我們可以利用API的SetWindowLong函數來進行對VBA中窗體的設置。 以下代碼添加到窗體中,可以隱藏窗體的關閉按鈕。   'API聲明 Privat

原创 如何編寫分解因數的自定義函數?

Q:如何編寫分解因數的自定義函數?A:首先,我們需要一個判斷質數的函數。代碼如下: Function IsPrime(ByVal N) Dim arr(1 To 2) For i = 2 To N ^ 0.5

原创 如何獲取數組的維數

在Excel VBA編程中,我們知道可以利用UBound函數來獲取數組各緯度的上標。但是當超過該數組的上標時就會發生錯誤,所以可以利用Excel的出錯來獲取數組的維數。代碼如下: Function DofArray(arr) As Int

原创 根據輸入的日期獲取人民幣匯率

主要是利用Excel自帶的創建Web查詢功能,再配合代碼加以實現。代碼如下: Sub 查詢() Dim sDate As Date sDate = Application.InputBox("請輸入日期", "輸入", D

原创 VBA中如何使用冒泡排序

其實,在VBA中可以使用其他編程語言中使用的排序方法,只是語法不同而已。   以下就是冒泡排序的一個簡單例子。如果區域有變化,作相應改動即可。   Sub 冒泡排序() Dim i As Integer, Temp As Vari

原创 Excel+VBA製作貪食蛇遊戲

這個是我第一個Excel遊戲,邊學邊做弄了好久,也沒什麼美化。其實算法比較簡單,看看就會了。   點擊下載

原创 如何正確使用TreeView的HitTest方法?

Q:如何正確使用TreeView的HitTest方法? A:在TreeView控件 中有一個非常有用的方法HitTest,其功能 是返回指定座標的節點對象 。其語法如下:object.HitTest(x As Single, y As S

原创 用Mid語句來實現字符串替換

Mid語句可以用於替換,速度非常快。其語法與我們取字符的MID函數語法相同,只不過等號左右顛倒了一下Mid(要替換的字符串, 起始位置[, 替換長度]) = 用於替換的字符串例如下面語句,將MyStr的第五位替換成0 Dim MyStr

原创 在VBA中如何將SQL得到的數據直接賦值到數組?

Q:在VBA 中如何將SQL 得到的數據 直接賦值到數組? A:可以利用RecordSet的GetRows方法獲取 數組。 Sub SQL2Arr() Dim AdoCN As Object Dim AdoRe As Ob

原创 批量刪除滿足條件的行和行中的圖片

批量刪除滿足條件的行和行中的圖片,而不會影響其他按鈕。 如下例,刪除A列爲0的行和該行中的圖片: Sub 批量刪除行和行中的圖片() Dim arr, rng As Range, i As Long, arrPic, iPic A

原创 利用VBA從網絡獲取時間來校準計算機時間

可以利用Microsoft.XMLHTTP來讀取網頁內容,請參考下列代碼。 Sub 利用網絡時間校對當前計算機時間() Dim objXML As Object Dim strTemp As String Dim