返回列表 上一主題 發帖

利用VBA 表單製作萬年曆?

利用VBA 表單製作萬年曆?

想請問各位大大
如果我想利用VBA表單功能來製作萬年曆
但就是不知道如何著手

網路上能搜尋到的資源
都是利用函數在Sheet 上面運算
有試過轉移到表單上面去執行

卻不知道少了什麼
表單的配置如下


希望有高人指點迷津,感激不盡>"<
Jared

本帖最後由 Jared 於 2013-3-25 15:59 編輯

回復 2# mark15jill

感謝大大回覆:)
如果是要利用表單自行寫程式
這樣可行嗎?
因為我在念書時老師有教過利用VB 來寫過
但已經距離我很久了...

觸發方式
當我選擇年(A)、月(B)後
底下的點選數字會浮現出來
小於1 & 大於31會隱藏起來
當然還有月份沒31號的也隱藏

至於潤二月(@@)..好像要套公式進去
這樣可行嗎??
Jared

TOP

回復 4# mark15jill


    感謝大大大力協助
   畫面上呈現的跟我預想的一樣(0口0)"
  看來我真的修行不夠><
  原本我程式是寫這樣
   但程式就判斷找不到DAY_i.Caption 這個成員....
    繼續努力中...
Private Sub ComboBox2_Change()
If ComboBox1.ListIndex > -1 Then
    chang_day
    a = DateSerial(ComboBox1.Value, ComboBox2.Value, 1)         '本月起始日
    b = DateSerial(ComboBox1.Value, ComboBox2.Value + 1, 1)     '下月起始日
    c = DateSerial(ComboBox1.Value, ComboBox2.Value + 1, 1) - 1 '本月結束日
    d = Weekday(TextBox1)                                       '第一天位置
Else
   ComboBox2 = ""
End If
End Sub

Sub chang_day()
Dim i, j, x, y

y = DateSerial(ComboBox1.Value, ComboBox2.Value + 1, 1) - 1
For i = 1 To 42
x = DAY_i - Weekday(DateSerial(ComboBox1.Value, ComboBox2.Value, 1)) + (DAY_i - 3) * 7
DAY_i.Caption = x
Next
End Sub
Jared

TOP

回復 5# GBKEE


    (0口0)...想請問大大
    為什麼畫面一開始都沒東西?
    是在哪一行程式宣告隱藏呢?
    程式中 宣告 好多沒見過的語法(@@)...
Jared

TOP

回復 7# GBKEE


    回覆大大
    DAY_i 是如何設定的?
    DAY_i 就是OptionButton1 屬性NAME 改成DAY_1 ~42
       
是想利用For 迴圈去計算
最後在加上判斷式
計算出來的數字小於1或大於31就隱藏起來
但就是跑不過卡在這裡

    剛剛利用大大的回覆程式碼成功了(^口^)
     不過卻變成同一種數字....(u_u)
      
Jared

TOP

回復 11# mark15jill


大大
後來發現運算式都錯了
計算出來的天數都不對....><
Jared

TOP

回復 12# GBKEE


    想請問一下大大
    程式中當我點選日期的時候
    會跳出警告視窗
    告知你點選的是年月日

    那如果是要點選日期後就動作
    直接寫入指定欄位是要在哪裡撰寫呢?(例如:Sheet1.Range("A1"))
 由於表單頁面上的OptionButton都是隱藏的
    因此我添加程式不曉得寫哪裡
   
    希望大大解除我的疑惑
    感激不盡!><
Jared

TOP

回復 15# GBKEE


    感謝大大解開我的疑惑
    原來我弄錯地方了
    沒注意到Class 物件類別模組裡面的程式碼
    搞不懂 OB是什麼意思

    剛剛是想在
    With Controls.Add("Forms.OptionButton.1", I) 裡面加入
    If .Visible = True Then
    Sheet1.Range("A1") = DateSerial(ComboBox1, ComboBox2, Day(I))
    End If
   
    但原本表單上面就沒有出現OptionButton
    所以天數那裡也不曉得怎麼用
    現在我知道了

    不過看來我還要繼續加油了...><
Jared

TOP

回復 19# mark15jill


    (@@)...好多Dim
    看得眼花撩亂...
    建議可以用簡單的A、B、C、D來命名(u_u)
Jared

TOP

        靜思自在 : 滴水成河。粒米成蘿,勿輕己靈,勿以善小而不為。
返回列表 上一主題