返回列表 上一主題 發帖

ComboBox選好文字後,欄位沒東西

ComboBox選好文字後,欄位沒東西

本帖最後由 Jared 於 2013-2-25 16:26 編輯

各位大大好
小弟我日前研究VBA用法
但程式寫法還是有些不明白

目前遇到的問題
用意是要表單用下拉式選單選擇完年月日後
傳回Sheet的某個欄位
但是我的程式變成初始值顯示是空白,還可以填寫(正常是有預設值,並且無法做修改的動作)
雖然下拉式選單已經選好文字
可是傳回Sheet後是空白沒東西
以下是我目前寫的
麻煩各位大大能幫我解惑
感激不盡!!!:dizzy:
螢幕截圖00030.jpg
-------------------------------
Private Sub CommandButton1_Click()
Call test2
End Sub
-------------------------------
Sub test2()
Dim X

a1 = test.Box1.Value '年
a2 = test.Box2.Value '月
a3 = test.Box3.Value '日

X = ("a1") & (".") & "a2" & (".") & "a3"


If Application.CountBlank([C5:C99]) = 0 Then Range("C100") = X: Exit Sub
For Each a In [C5:C99]
    If a = "" Then
        a.Value = X
        Exit For
    End If
Next

End Sub
Jared

各位大大好
小弟我日前研究VBA用法
但程式寫法還是有些不明白

目前遇到的問題是
用意是要表單用下 ...
Jared 發表於 2013-2-25 16:25


不太清楚頁面上的情況,
但是這句是有問題的
X = ("a1") & (".") & "a2" & (".") & "a3"
應該是這樣
X = a1&"." & a2 & "." & a3
不然頁面上只會加上寫死了的 "a1.a2.a3"
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

感謝大大幫忙
但是這樣的寫法
X = a1&"." & a2 & "." & a3
""一定要加上()
不然會判斷這是非陳述式出現錯誤

我主要的問題是
要怎麼設定
才能將下拉式選單的東西在點選Bottom後
將資料傳到指定欄位上

感激不盡>"<
Jared

TOP

回復 3# Jared
  1. Private Sub CommandButton1_Click()
  2. Dim A As Range
  3. If Application.CountBlank(Sheet1.Range("A5:A99")) = 0 Then
  4. Sheet1.[A100] = DateSerial(ComboBox1, ComboBox2, ComboBox3)
  5. Else
  6. Set A = [A5]
  7. Do Until A = ""
  8.   Set A = A.Offset(1, 0)
  9. Loop
  10. A.Value = DateSerial(ComboBox1, ComboBox2, ComboBox3)
  11. End If
  12. End Sub
複製代碼
學海無涯_不恥下問

TOP

謝謝大大的協助
終於可以回傳下拉式選單的訊息
但是不曉得為什麼
原本命名的下拉式選單為『Box1』
Sheet1.[A100] = DateSerial(Box1, Box2, Box3)
會出現找不到成員的警告視窗
要改為ComboBox3 的名稱才沒有出錯
但是我原本設定要將這三個欄位的數值
分別為年月日
都傳到欄位時變成完整日期[例如:2013/02/28]
但傳到A1時,一律顯示1999/11/30(如圖)
不曉得為什麼
希望能解答我的疑惑
感激不盡!!
Jared

TOP

回復 5# Jared


    這樣的問題,沒有檔案是得不到答案的
學海無涯_不恥下問

TOP

謝謝大大的協助
終於可以回傳下拉式選單的訊息
但是不曉得為什麼
原本命名的下拉式選單為『Box1』
Shee ...
Jared 發表於 2013-2-27 10:13



   
終於可以回傳下拉式選單的訊息
但是不曉得為什麼
原本命名的下拉式選單為『Box1』
Sheet1.[A100] = DateSerial(Box1, Box2, Box3)
會出現找不到成員的警告視窗

這點,你在宣告時,有無將 Box1宣告成  ComboBox1
如果沒有,當然找不到..


要改為ComboBox3 的名稱才沒有出錯
但是我原本設定要將這三個欄位的數值
分別為年月日
都傳到欄位時變成完整日期[例如:2013/02/28]
但傳到A1時,一律顯示1999/11/30(如圖)
不曉得為什麼

這點,MS Office 的時間預設值原本就不是照正常的時間預設
除非另外設定,網路上有方法

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

另外,這問題應該是屬於程式區塊吧... 怎跑到一般區 ==

  多做多想多學習,少看少錯少迷途

  多做=多多練習,多多編寫。
  多想=想想為什麼人家程式要那樣寫,如果換成自己,又會怎寫。
  多學習=學習人家的發問並解答,學習人家的寫法

  少看=只看不做也枉然

TOP

回復 6# Hsieh
測試檔.zip (23.54 KB)

抱歉! 夾帶檔案如附件
DateSerial 的語法是將選單的數字判斷為日期
但是選單選擇的數值卻無法抓到

每按一次Button將資料送出
數值就在選單裡頭複製一次
不曉得原因為何

還請大大解惑
感激不盡!! >"<

螢幕截圖00042.jpg (43.05 KB)

螢幕截圖00042.jpg

螢幕截圖00043.jpg (12.74 KB)

螢幕截圖00043.jpg

Jared

TOP

回復 8# mark15jill
抱歉>"<
希望沒有造成任何人的困擾
Jared

TOP

        靜思自在 : 信心、毅力、勇氣三者具備,則天下沒有做不成的事。
返回列表 上一主題