標題:
[發問]
如何寫符合條件後用MXGBOX方式表示
[打印本頁]
作者:
小華
時間:
2014-8-13 18:29
標題:
如何寫符合條件後用MXGBOX方式表示
請教各位大大 小弟有一個資料庫 裡面有人名,加班小時,月份等等資料
小弟我想增加一個功能是在輸入的時候顯示"這個人"在"這個月"的"工作時數"有沒有超過30小時
如果有則用Msgbox方式表示,如沒有則不顯示
作者:
PKKO
時間:
2014-8-13 19:06
因為你沒有詳細的資料
我只能預設
A1儲存格為這個月的總加班時數
B1為人名
C1為月份
Sub test1()
Dim I As Integer
'計算A1到A100共有幾個項目,就跑幾次迴圈
For I = 1 To Application.WorksheetFunction.CountA(Range("a1:a100"))
If Cells(1, 1) > 30 Then MsgBox Cells(1, 2) & "在" & Cells(1, 3) & "月份,總工作時數為" & Cells(1, 1) & "小時"
Next I
End Sub
作者:
kimbal
時間:
2014-8-14 00:32
用PKKO提供的方法,再加上worksheet_change
可以達到輸入的時候顯示的效果.
如果能提供EXCEL/頁面位置,可以更易解释給你聴
作者:
小華
時間:
2014-8-22 22:13
回復
2#
PKKO
感謝大大的教導,只是我需要在MAGBOX顯示前先比對 我輸入的這筆資料"這個人"在"這個月"的加班時數加總
需要同時符合月份、姓名 跟SUMIFS函數一樣(2個條件),只是不懂得如何在VBA裡用程式碼去判斷後加總
作者:
小華
時間:
2014-8-22 22:14
回復
3#
kimbal
謝謝版主的提醒,因為檔案�堶惘陪虒磡狴H不方便提供上來.............
作者:
PKKO
時間:
2014-8-23 01:37
還是提供範例吧!
不然無法寫出您的需求
把個人資料刪除換成ABC即可
作者:
小華
時間:
2014-8-25 22:58
回復
6#
PKKO
附上檔案~~
作者:
PKKO
時間:
2014-8-26 23:38
你附上了檔案,但看不太懂你的檔案...
作者:
GBKEE
時間:
2014-8-27 07:26
本帖最後由 GBKEE 於 2014-8-28 05:06 編輯
回復
7#
小華
Workbooks.Open Filename:=y.Range("L20") '開啟資料庫
複製代碼
'你的資料庫是在Workbooks.Open裡,還是[OT Keyin.xlsm]!DataBasa
Private Sub Enter_Click()
Dim Rng As Range, The_allTime As Single, AddTime As Single, Msg As Boolean
If ComboBox1 <> "" And Year01 <> "" And Month01 <> "" Then
With Sheets("DataBasa")
Set Rng = .Range("a6").CurrentRegion '資料庫
'*******************設資料庫準則
.Cells(1, .Columns.Count) = "日期條件" '條件式準則欄位名稱,須與資料庫的欄位名稱不相同
.Cells(2, .Columns.Count) = "=AND(YEAR(日期)=" & Year01 & ",MONTH(日期)=" & Month01 & ")"
.Cells(1, .Columns.Count - 1) = "姓名" ' "總工時"
.Cells(2, .Columns.Count - 1) = ComboBox1
The_allTime = Application.DSum(Rng, "總工時", .Cells(1, .Columns.Count - 1).Resize(2, 2))
'Application.DSum 資料庫函數(H0 參數:=資料庫,參數:=欄位,參數:=準則條件) 加總
If The_allTime > 30 Then
Msg = True
MsgBox ComboBox1 & " " & Year01 & "/" & Month01 & "加班時數 " & The_allTime
ElseIf ComboBox6 <> "" And ComboBox5 <> "" Then
AddTime = (TimeValue(ComboBox6) - TimeValue(ComboBox5)) * 24 '新增加班時數
If The_allTime + AddTime > 30 Then '以加班時數+新憎班時數
Msg = True
MsgBox ComboBox1 & " " & Year01 & "/" & Month01 & "加班時數 " & The_allTime & " + " & AddTime
End If
End If
End With
End If
If Msg Then Exit Sub '有超過30小時,離開程式
Set w = Sheets("DataBasa")
Set Y = Sheets("Base")
AAAA = ""
'你繼續下去的程式碼
複製代碼
作者:
小華
時間:
2014-8-27 22:02
回復
9#
GBKEE
感謝版大~~我先來消化一下你寫的程式碼~~
我的資料庫是在[OT Keyin.xlsm]!DataBasa
作者:
小華
時間:
2014-8-27 22:03
回復
8#
PKKO
真的很抱歉,因為小弟是初學者 所以寫的有點亂............
對於有些程式碼也是朦朦朧懂的~~
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)