Airman
Lv 4
Airman 發問時間: 電腦與網際網路軟體 · 9 年前

VBA~運算起期和迄期之InputBox合併的語法。

說明︰原

startrang = InputBox("請輸入運算起期", "輸入期數") 輸入100

endrang = InputBox("請輸入運算迄期", "輸入期數") 輸入100

則產生第100期共1期的單期之效果檔。

startrang = InputBox("請輸入運算起期", "輸入期數") 輸入100

endrang = InputBox("請輸入運算迄期", "輸入期數") 輸入105

則產生第100期到105共6期的連續多期之效果檔。

需求︰請合併為一個InputBox ~EX︰

startrang To endrang= InputBox("請輸入運算的起迄期數")

即︰

輸入100時,則產生第100期共1期的單期之效果檔。

輸入100-105時,則產生第100期到105共6期的連續多期之效果檔。

且期數可輸入到四位數(即最大期數為9999)。

簡單說︰

即是將其"輸入起迄期數"的功能,改為如同NUM =InputBox的功能一樣。

且期數擴大為可輸入到四位數。

請問︰下列有關的程式碼應該如何增修? 謝謝!

列1 Private SubCommandButton1_Click()Dim startrang%, endrang%, q%, t%, e%, s%, a, tim!,arr(48), brr(), tx%, ty%, b, Tname$, d, shcount% NUM =InputBox("請選擇公式的起迄序號") startrang = InputBox("請輸入運算起期", "輸入期數") endrang= InputBox("請輸入運算迄期", "輸入期數") tim =Timer [B2] ="" [F2] ="" Numx =NUMFor N = Left(Numx, 2) To Right(Numx, 2) NUM = N Sheets(2).Range("D" & NUM).Copy Sheets("DATA").[T7].Select ActiveSheet.Paste Application.ScreenUpdating = False '在背景下執行 Application.Calculation = xlCalculationManual '手動計算列17 For mthcount = startrang Toendrang︰︰列218 NextNext[T1].Select[B2] = Numx & "=>"[F2] = startrang & "~" & endrang& "=" & Format((Timer - tim) / 24 / 60 / 60,"hh:mm:ss")列223 End Sub

4 個解答

評分
  • 顯栓
    Lv 7
    9 年前
    最佳解答

     Nrange = InputBox("請輸入運算的起迄期數", "輸入期數")  'endrang = InputBox("請輸入運算迄期", "輸入期數")  tim = Timer  [B2] = ""  [F2] = ""   .   .列16  Application.ScreenUpdating = False '在背景下執行  Application.Calculation = xlCalculationManual '手動計算  K = 0  For I = 1 To Len(Nrange)   If Mid(Nrange, I, 1) = "-" Then    K = 1    startrang = Left(Nrange, I - 1)    endrang = Mid(Nrange, I + 1, 4)   End If  Next  If K = 0 Then   startrang = Nrange   endrang = Nrange  End If以下不變For mthcount = startrang To endrang

  • 匿名使用者
    6 年前

    到下面的網址看看吧

    ▶▶http://*****/

  • Airman
    Lv 4
    9 年前

    rc博士︰

    不好意思,小弟未能完全瞭解貴程式碼,無法置入程式檔。

    ^^"

    附上範例檔~請參考!謝謝您!

    http://www.funp.net/658111

  • 9 年前

    inputbox ,

     空輸入,按 [確定],返回 num="" (空字元)

     按 [取消] 也是返回 num="" (空字元)

    application.inputbox

     空輸入,按 [確定],返回 num="" (空字元)

     按 [取消] 返回 num= False

    請按須要選擇使用。

    ~~~~~~~

    >起期和迄期之InputBox合併的語法

    要求合併輸入。

    例如:100-105

       100 (單期)

    2011-07-27 19:23:54 補充:

    供參考

    Private Sub CommandButton1_Click()

    On Error Resume Next

    Dim num, test

    100

    num = Application.InputBox("例如:" & Chr(13) & Chr(13) & " 單期:100" & Chr(13) & " 多期:100-105", "請選擇起、迄序號")

    2011-07-27 19:24:14 補充:

    ~接上

    If num = False Then

    MsgBox "你按了 【取消】 ,程式結束"

    Exit Sub

    End If

    If IsEmpty(num) Then GoTo 100

    test = Application.Evaluate(num)

    If VarType(test) <> 5 Then GoTo 100

    MsgBox "輸入正確"

    On Error GoTo 0

    End Sub

    2011-07-27 19:56:10 補充:

    可以做多些驗證,比如說後數小於前數,或數字太大,就退回標簽 100。

    2011-07-27 20:18:41 補充:

    開一個新檔案,載入上面程式試行看看,合用就插入舊檔,不合用就免了。

還有問題?馬上發問,尋求解答。