5.EXCEL中的VBA程式碼
今天有一同學,喊我幫忙處理EXCEL中資料的問題,題目表述太含糊,簡單說,分3步工作:
1)找出SHEET1的"甲列"中相同的行,
2)把相同的行對應的"乙列"中的行求和SUM,
3)找出SHEET2的"丙列"中與"甲列"中相同的行,並把此行對應的"丁列"的值置為SUM.
個人對EXCEL中的公式與函式不熟悉,又沒有找到合適的人詢問,只好自己在VBA裡寫程式碼.
因太久沒有碰過VB,而且又不知道同學是否會再次喊我做同樣的事情,所以把程式碼貼在這裡,以備後用.
Sub SelectData()
Dim i As Long, Max As Long, j As Long, Max2 As Long
Dim count As Long
Dim val As Double
Dim sh1 As Worksheet, sh2 As Worksheet
Dim col11 As String, col12 As String, col13 As String, col21 As String, col22 As String
col11 = "A" '合併的列
col12 = "C" '累加資料列
col13 = "A" '與另一個SH2比較的列
col21 = "B" '與SH1比較的列
col22 = "C" '和資料存放的列
Set sh1 = Sheet2
Set sh2 = Sheet3
j = 1
i = 1
count = 1
Max2 = 302
Max = 252
val = sh1.Range(col12 & 1).Value
Do
If sh1.Range(col11 & count).Value = sh1.Range(col11 & (i + 1)).Value Then
val = val + sh1.Range(col12 & (i + 1)).Value
i = i + 1
Else
For j = 1 To Max2
If sh2.Range(col21 & j).Value = sh1.Range(col13 & (count)).Value Then
sh2.Range(col22 & j).Value = val
Exit For
End If
Next
i = i + 1
count = i
val = sh1.Range(col12 & i).Value
End If
Loop While i < Max
End Sub
記:果然同學又有了新的功能,在原先的基礎上修改就比較順利了.
Sub SelectData()
Dim i As Long, Max As Long, j As Long, Max2 As Long
Dim count As Long
Dim sh1 As Worksheet
Dim col11 As String, col12 As String, col13 As String, col14 As String
col11 = "A" '合併的列
col12 = "B" '累加資料列
col13 = "C" '與另一個SH2比較的列
col14 = "D" '與另一個SH2比較的列
Set sh1 = Sheet1
j = 1
i = 1
count = 1
Max2 = 10 'C列最大行數+1
Max = 10 'A列最大行數
Dim flg As Integer
Do
flg = 0
For j = 1 To Max
If sh1.Range(col11 & j).Value = sh1.Range(col13 & (count)).Value Then
sh1.Range(col14 & count).Value = sh1.Range(col12 & j).Value
flg = 1
Exit For
End If
Next
If flg = 0 Then
sh1.Range(col14 & count).Value = 0
End If
i = i + 1
count = i
Loop While i < Max2
End Sub
COPYRIGHT©2008, .ALL RIGHTS RESERVED.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/725190/viewspace-249113/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何檢視excel中的vba編碼程式碼Excel
- 簡單演示Excel中VBA程式碼的使用Excel
- 封裝我們的VBA程式碼封裝
- vba-單元格程式碼
- 合併具有文字框的Word文件:VBA程式碼批次操作
- VBA工程密碼破解密碼
- VBA中CopyFile 方法的功能及應用
- Excel VBA小程式 -使 用VBA實現VLOOKUP函式查詢?Excel函式
- Excel VBA活動抽獎小程式Excel
- 如何批量取消word密碼?VBA簡單程式設計解決密碼程式設計
- 用VBA程式碼編寫一鍵插入Excel斜線表頭Excel
- VBS VBA VB C#程式開發C#
- 用VBA計算EXCEL中的行數和列數Excel
- Excel vbaExcel
- VBA過程―子程式與函式(轉)函式
- VBA 知識
- EXCEL+VBAExcel
- 企業中的低程式碼與無程式碼
- Java 中的程式碼塊Java
- 程式碼世界中的Lambda
- Java中的程式碼塊Java
- Excel-如何用VBA程式設計操作Pivot TableExcel程式設計
- Excel--使用VBA Code 動態建立、修改和刪除自定義窗體程式碼摘抄Excel
- excel VBA學習Excel
- Optimize Slow VBA Code
- 程式碼中的軟體工程軟體工程
- 氣象中的常用程式碼
- 影片直播app原始碼,VBA 之Interior 物件設定底色APP原始碼物件
- ArcGIS VBA - VBA+AO入門15例完全註釋版
- VBA陣列的使用方法(轉)陣列
- 消除程式碼中的壞味道,編寫高質量程式碼
- extern "C"的用途—在C++程式碼中嵌入C程式碼C++C程式
- 在Excel VBA中寫SQL,是一種什麼體驗ExcelSQL
- 優化程式碼中的“壞味道”優化
- Ruby 中的閉包-程式碼塊
- 程式碼中的敏感資訊加密方案加密
- 巧取簡訊中的回覆程式碼
- 動力之源:程式碼中的“泵”