EXCEL VBA 每15人各加小星號,如此到100人。

EXCEL VBA 每15人各加小星號,如此到100人。【需求】1。B3欄開始,每次15人點*[小*即可]。2。第二次也是15人,但是前面的15個*清空白。3。如此控制至100人[顯示在D2來控管]停止。此時前面做了15人*6次=90人,剩下的是100人-90人=10人了。4。每15人加星號完之時,小視窗顯示一下,現在是在第幾次的15人加星號。【感恩】 http://www.funp.net/56570400%E6%AF%8F%E6%AC%A115%E...

已更新項目:

新題請大家多幫忙一下,謝謝喔。

https://tw.knowledge.yahoo.com/question/question?q...

【衍生題】EXCEL 每15人各加小星號,如此到100人。

2 個已更新項目:

暱稱 知識長 前輩 : 畫龍點睛的妙啊,可以完成我的需求了,沒意見的話,就選002先生為最佳正解囉,我會加上要參考您的意見的,謝謝喔。一題用函式一題用VBA,剛好互補。

3 個已更新項目:

等 VBA 大工程師蒞臨指導之後再結案囉,感恩。

5 個解答

評分
  • 世銘
    Lv 4
    6 年前
    最佳解答

    兩位回答者都沒補充意見 按版主的意見來代言 請大家參考以下之正解 本題是屬連點 請參考連點部分

    https://tw.knowledge.yahoo.com/question/question?q...

    【衍生題】EXCEL 每15人各加小星號,如此到100人。

  • 6 年前

    這題出的很好~

    剛好我也需要~

    不過我的需求沒那麼高級~

    為方便題目在一起~

    能不能請版主幫我出一下類似的題~

    我的不要全自動~

    我只需要在某欄區分1.2.3.4.5.6......~

    1就是第一組15人~

    餘此類推~

    這樣就很滿足了~

    謝謝版主~

    2015-06-12 07:55:28 補充:

    其實 002 回答者已寫的相當好了~

    版主要的變數型~

    我來畫龍點睛一下~

    2015-06-12 08:03:11 補充:

    Sub test()

    Dim i, j, k,m_d2 === 加上m_d2 您要在D2欄輸入100

    m_d2 = Cells(2, 4) === 新增此列

    j = [D65536].End(xlUp).Row

    If j > 1 Then Range("D2:D" & j).ClearContents == 這邊從第三欄開始所以要 j > 2

    還有 D2:D === 改為D3:D

    k = 0

    2015-06-12 08:03:53 補充:

    For i = 1 To 100 === 這裡100要改為m_d2

    Cells(i + 2, 4).Select

    Cells(i + 2, 4) = "***"

    If i Mod 15 = 0 Then

    k = k + 1

    MsgBox "第" & k & "次"

    2015-06-12 08:04:01 補充:

    Cells(i - 13, 4).Resize(15, 1).ClearContents

    End If

    Next

    If i Mod 15 - 1 > 0 Then

    MsgBox "第" & k + 1 & "次"

    End If

    End Sub

    2015-06-12 08:05:51 補充:

    程式碼另傳版主~

    如有差異以版主的為主~

    因為知識家的編輯器會吃字~

    建議版主點選002回答者為最佳解答~

    我的只是借花獻佛而已~

    2015-06-13 14:14:13 補充:

    引用新題的意見~

    專家一出手的確不同凡響~

    就把兩題給命名為:單點與連點~

    取的相當好~

    這題是我委託版主幫我發問的~

    所以我建議 准提大師上台發表~

    不知E大與版大有沒意見~

    而函數部分請版大在結論時PO上一下~

    我的是單點~

    版大那題是連點~

    建議版大也請准大上台發表~

    這樣可以讓初學者學得更多~

    謝謝~~~~~~~~~~~~~~~

  • 6 年前

    Sub test()

    Dim i, j, k

    j = [D65536].End(xlUp).Row

    If j > 1 Then Range("D2:D" & j).ClearContents

    k = 0

    For i = 1 To 100

    Cells(i + 2, 4).Select

    Cells(i + 2, 4) = "***"

    If i Mod 15 = 0 Then

    k = k + 1

    MsgBox "第" & k & "次"

    Cells(i - 13, 4).Resize(15, 1).ClearContents

    End If

    Next

    If i Mod 15 - 1 > 0 Then

    MsgBox "第" & k + 1 & "次"

    End If

    End Sub

  • 感謝

    大致不錯,目前先測到兩個問題,

    第一:

    If (15 * (i + 1) + 2) < 102

    您是用定值102

    第二:

    最後一個也就是第七個沒有顯示*就結束了

    請幫忙再看看喔,謝謝,辛苦了。

    2015-06-10 17:02:47 補充:

    您好

    我在D2欄上有加100,這樣比較好控制要做到哪裡,比較有彈性,不用再去修改VBA,謝謝喔,辛苦了。

    2015-06-10 17:31:19 補充:

    還有這邊

    For I = 1 To 7

    只做到6次就停了,希望能夠以D2的最終值來做研判,比如100,這樣就很有彈性了,謝謝喔,感恩。

    2015-06-10 18:40:31 補充:

    先生( 初學者 5 級 )

    感謝,改善很多了。

    其中D2的100會被刪掉,請問一下,

    這裡的For i = 1 To 100 的100能不能使用我的D2欄的值=100呢,因為每次狀況會不同的,除非每次還要用人工去修改VBA的這100,請幫忙看看囉,感恩。

    2015-06-10 18:51:40 補充:

    還有請問一下

    假如我要在每15人點完*號之後立即啟動我的CALL,以利連續的處理我的固定工作,請問該放在哪裡呢,謝謝喔。

    2015-06-10 21:52:54 補充:

    好的,準備按下列來請益大專家了:

    【新需求】

    1。新增E2欄=想要挑選的次數,比如打入=1=就執行1至15人的B欄+*,2就執行16至30人的B欄+*,餘此類推。

    2。其他請參考前題的基本需求,檔案相同。

    2015-06-10 22:08:08 補充:

    https://tw.knowledge.yahoo.com/question/question?q...

    【衍生題】EXCEL 每15人各加小星號,如此到100人。

    2015-06-11 15:34:04 補充:

    假如函式也能滿足我的需求者也可以試試囉,感謝喔。

    2015-06-12 09:19:40 補充:

    2015-06-12 09:17:52 補充

    暱稱 知識長 前輩 : 畫龍點睛的妙啊,可以完成我的需求了,沒意見的話,就選002先生為最佳正解囉,我會加上要參考您的意見的,謝謝喔。一題用函式一題用VBA,剛好互補。

    2015-06-12 09:52:00 補充:

    2015-06-12 09:51:16 補充

    等 VBA 大工程師蒞臨指導之後再結案囉,感恩。

    2015-06-14 23:17:21 補充:

    補充資料如下

    新題已解決,但是大師把兩題都答在一起了,所以有關這題的正解問題,現在徵求一位自願者,必須有參與這新舊兩題討論的人員,包括回答者,肯補充新題准大師的正解者,就可以結案了,大家請不要客氣喔,請大家幫忙,謝謝。

    2015-06-14 23:25:24 補充:

    已發信給回答者參考了。

    補充資料如下

    新題已解決,但是大師把兩題都答在一起了,所以有關這題的正解問題,現在徵求一位自願者,必須有參與這新舊兩題討論的人員,包括回答者,肯補充新題准大師的正解者,就可以結案了,大家請不要客氣喔,請大家幫忙,謝謝。

    2015-06-14 23:25:42 補充:

    正解請參考這題

    https://tw.knowledge.yahoo.com/question/question?q...

    【衍生題】EXCEL 每15人各加小星號,如此到100人。

    要補充的這題是

    https://tw.knowledge.yahoo.com/question/question?q...

    EXCEL VBA 每15人各加小星號,如此到100人。

    2015-06-15 12:29:24 補充:

    假如這題兩位回答者,沒興趣補充的話,就請志願者來幫忙,感恩,但請先表達一下意見囉。

  • 您覺得這個回答如何?您可以登入為回答投票。
  • 6 年前

    Sub 巨集1()

    For j = 1 To 15

    Cells(2 + j, 2) = "*"

    Next j

    For i = 1 To 6

    MsgBox ("現在是第" + CStr(i) + "次的15人加星號")

    If (15 * (i + 1) + 2) < 102 Then

    For j = 1 To 15

    Cells(15 * (i - 1) + 2 + j, 2) = ""

    Next j

    For j = 1 To 15

    Cells(15 * i + 2 + j, 2) = "*"

    Cells(15 * i + 2 + j, 2).Select

    Next j

    End If

    Next i

    End Sub

    參考資料: 自己
還有問題?馬上發問,尋求解答。