返回列表 上一主題 發帖

[發問] 如何設立可指定計算期數範圍的InputBox?

[發問] 如何設立可指定計算期數範圍的InputBox?

本帖最後由 Airman 於 2018-6-10 00:59 編輯

如有重複題之慮~請刪除前題謝謝!

測試檔 :
2018-0610-Q-1 -.rar (66.23 KB)
主檔DATA︰
目前列103程式碼為Qdown = .[R6].End(xlDown).Row
則只將R欄最後期數的當列Q : S資料貼上T4 : T6;以供T3及後續的T7公式計算。

假設列103程式碼為Qdown = .[R6].End(xlDown).Row - 1
則只將R欄最後倒數第二個期數的當列Q : S資料貼上T4 : T6;以供T3及後續的T7公式計算。

假設列103程式碼為Qdown = .[R6].End(xlDown).Row - 2
則只將R欄最後倒數第三個期數的當列Q : S資料貼上T4 : T6;以供T3及後續的T7公式計算。

其餘.....以此類推。

需求︰
想以增加一個Upcount(名稱解題者可擇宜制定)的InputBox,藉其輸入的數字(1~99),
來指定T4 : T6(含)及其往右各欄要貼上R欄最後的N個期數之各當列的Q : S資料~
EX1︰當InputBox輸入1時,則T4 : T6貼上R欄最後一個期數當列的Q : S資料~
      即等同列103程式碼為Qdown = .[R6].End(xlDown).Row的效果。

EX2︰當InputBox輸入2時,則T4 : T6貼上R欄最後倒數第二個期數當列的Q : S資料
      U4 : U6貼上R欄最後一個期數當列的Q : S資料~
      即等同列103程式碼為Qdown = .[R6].End(xlDown).Row - 1 & .[R6].End(xlDown).Row的效果。

EX3︰當InputBox輸入3時,則T4 : T6貼上R欄最後倒數第三個期數當列的Q : S資料
      U4 : U6貼上R欄最後倒數第二個期數當列的Q : S資料
      V4 : V6貼上R欄最後一個期數當列的Q : S資料~
      即等同列103程式碼為Qdown = .[R6].End(xlDown).Row - 2 & .[R6].End(xlDown).Row - 1 &
      .[R6].End(xlDown).Row的效果。

其餘.....以此類推。


請問 :
Upcount的 InputBox要怎麼設立?
列103的程式碼要如何再撰寫?

以上 敬請各位VBA高手幫忙和賜教! 謝謝!

本帖最後由 Airman 於 2018-6-13 11:10 編輯

回復 2# GBKEE
謝謝您的回應^^

補充說明:
R欄的期數=B : H有顯示$R$5值的A欄期數

Qdown = .[R6].End(xlDown).Row '=到R欄的最後一個的期數

如有誤~請賜正!謝謝您^^

Qdown = .[R6].End(xlDown).Row的總表效果檔案(執行運算後)



其餘請見總表範例~ 49FD_最後期數(總表)_1_10_200期.rar (9.6 KB)

需求:如1#
敬請賜教!感恩^^

TOP

本帖最後由 Airman 於 2018-6-13 11:48 編輯

回復 2# GBKEE
再補充:
目前只能得~
當列103為
Qdown = .[R6].End(xlDown).Row的總表效果檔案(執行公式運算後)

Qdown = .[R6].End(xlDown).Row - 1 的總表效果檔案(執行公式運算後)
即必須分別更改程式碼後再分開執行。

需求:
希望增加 一個Upcount的InputBox,藉其輸入的數字(EX:2),
則可得如~ 49FD_最後期數(總表)_2_10_200期的總表效果檔案(執行公式運算後)。
範例檔_2.rar (36.82 KB)
請問 :
Upcount的 InputBox要怎麼設立?
列103的程式碼要如何再撰寫?

敬請您撥冗賜教! 感恩^^

TOP

回復 5# GBKEE

謝謝您的指導~我試試看^^

TOP

回復 5# GBKEE

可否再勞駕您撥冗賜正:
DATA!列70~列94和列97和列100程式碼的錯誤~
UpRow = 填入"1-3"
跑出下列2個錯誤的效果檔案~
T49_S欄最後n個值_10_0_200期
T49_S欄最後n個值_10_-1_200期
謝謝您^^

測試檔    T49_S欄最後n個值.rar (29.67 KB)

'UpRow..............................................................................列69
    M3 = 0                                   ‘列70
    sta = 0
For x = 1 To Len(uprowx)
    If Mid(UpRow, x, 1) = "," Then
        M3 = M3 + 1
        ReDim Preserve In3rr(M3 - 1)
        In3rr(M3 - 1) = --Mid(uprowx, sta + 1, 2)
        sta = x
        x = x + 2
    End If
    If Mid(UpRow, x, 1) = "-" Then
        For y = Mid(uprowx, sta + 1, 2) To Mid(uprowx, x + 1, 2)
            M3 = M3 + 1
            ReDim Preserve In3rr(M3 - 1)
            In3rr(M3 - 1) = y
        Next
        sta = x + 3
        x = x + 5
    End If
    If x = Len(uprowx) Then
        M3 = M3 + 1
        ReDim Preserve In3rr(M3 - 1)
        In3rr(M3 - 1) = --Mid(uprowx, sta + 1, 2)
    End If
Next                                             ‘列94
'.................................................................................
For n = 1 To M
For n3 = 1 To M3                                   ‘列97
   
    NUM = In1rr(n - 1)
    UpRow = In3rr(n3 - 1)                           ‘列100

TOP

本帖最後由 Airman 於 2018-6-23 09:02 編輯

回復 5# GBKEE

補充說明:
需求是~
EX:UpRow = 填入"1-3",可以得到T49_S欄最後n個值_10_1_200期;T49_S欄最後n個值_10_2_200期;T49_S欄最後n個值_10_3_200期等三個效果檔案。
EX:UpRow = 填入"2,5,8",可以得到T49_S欄最後n個值_10_2_200期;T49_S欄最後n個值_10_5_200期;T49_S欄最後n個值_10_8_200期等三個效果檔案。

但目前程式碼的效果是~
UpRow = 填入"1-3",會跑出T49_S欄最後n個值_10_-1_200期;T49_S欄最後n個值_10_0_200期;T49_S欄最後n個值_10_1_200期;T49_S欄最後n個值_10_2_200期;T49_S欄最後n個值_10_3_200期等五個效果檔案。

EX:UpRow = 填入"2,5,8",只跑出T49_S欄最後n個值_10_2_200期;T49_S欄最後n個值_10_5_200期等二個效果檔案。
   
程式碼錯誤的地方,敬請您賜正!謝謝您^^"

TOP

回復 9# GBKEE
超版大:
謝謝您的耐心回應和指導。

晚上我重新整理主檔和效果檔及文字說明後,明天再請您賜教!謝謝您^^

TOP

回復 9# GBKEE
超版大:您好!
不好意思,本題原有2個細部需求,為避免文字說明"落落長",易令人混淆不解,所以先只針對第1個細部需求做說明;第2個細部需求~等第1個細部需求解決後,再另做說明和討論。


備註:已將不相關的程式碼改為註解型態。
第1個需求:
依據UpRow InputBox填入的數字,顯示同樣編號和對等個數的效果檔案~
EX:UpRow = 填入"1-4",可以得到T49_S欄最後n個值_1_200期;T49_S欄最後n個值_2_200期;T49_S欄最後n個值_3_200期;T49_S欄最後n個值_4_200期等四個效果檔案。
EX:UpRow = 填入"2,5,8",可以得到T49_S欄最後n個值_2_200期;T49_S欄最後n個值_5_200期;T49_S欄最後n個值_8_200期等三個效果檔案。

※ 本需求不討論~
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\T49_S欄最後n個值_"& UpRow & "_" & mthcount & "期.xls"檔案的內容~
只要檔案之UpRow的”名稱”和檔案的”個數正確即可

DATA!列70~列94和列97和列100程式碼的錯誤~
勞駕您撥冗賜正~謝謝您^^

測試檔: TT49_S欄最後n個值(主檔).rar (29.05 KB)

TOP

回復 12# GBKEE
超版大:您好!
謝謝您的耐心註解~2個需求一併解決了。
再次感謝您的費神指導~感恩^^

TOP

        靜思自在 : 一個人不怕錯,就怕不改過,改過並不難。
返回列表 上一主題