eleven
Lv 5
eleven 發問時間: 電腦與網際網路軟體 · 1 0 年前

excel2007參照B4是否為整數,否就在A1+4後再計算

在運用Excel時遇到一個問題。

儲存格B4會是一些經由計算後的結果,

而我希望由Excel自動判斷其值是否為正整數,

若否,

則把儲存格A1的數值再+4,

然後繼續進行計算,

直到B4為整數為止!

B4本身已有計算公式,

如:(A4+8)*8/15;

A4值則是由A1與其他格計算而來。

而A1第一次的值是手動輸入的,

再來則讓電腦判斷,

自行迴圈式計算到符合我要的為止。

印象中用Basic寫程式應該是有辦法寫出來,

但,是否有可能讓Excel做判斷後

再自動加數、計算呢??

請高手們教導,

由於我的Excel運用能力尚極粗淺,

若有必要請以

一、按上方"函數"....

一類簡明阨要地敍述,

感謝!

若有需要,也請推薦自學者能看懂的好書。

但,我很懷疑微軟會不會又要推出新版,

若推出新版那很可能界面又跟2007差很多,

那我寧可等待最新版的書出來再仔細學!

因為,個人目前並沒太多時間研究Excel!

我的電腦是Excel2007!

所以敍述請以它來敍述!

謝謝指教,

二十點相贈!

請確定您有能力針對問題教我才使用回答功能,

否則請給恴見即可!!

請某位"很聰明IQ邏輯世界第一"的人不用再來答,

您的無聊本人沒興趣!

已更新項目:

註明一下。

"某人"的檔案是香港的,

而開頭是R~XX!

香港人中或許有些人是懂禮貌且看得懂國語,

但是我所寫的這人沒能力卻又看不懂國語硬愛亂答!

2 個已更新項目:

我不會使用VBA,

也不知自己電腦中有沒有這東西,

難道不能用IF....

來設計嗎?

我看到有網友教其他人一些判斷式是在Excel中用IF....

若只能使用VBA,

請跟我說清楚些,

我是在A1中按什麼就可以直接輸入這串程式嗎?

謝謝!!

個人Excel都是自修的,

所以很多功能都不太會,

還請原諒!!

3 個已更新項目:

您好,按照您的方法,

是有求出我要的,

謝謝!

但,無意中按了ESC,

然後發現有"偵錯"的選項,

好奇之下按了它,

Wend 被顥示黃色(有錯),

請問要怎麼改呢?

又,可否請您推薦我VBA的書?

最好是由基礎到有一些些深入的。

我學過BASIC(雖然都忘光了),

您寫的程式個人大致一看就可懂其邏輯和程式代表意義,

所以我想要自修VBA應不會太難!

很謝謝您!!

請放心,您補充後我會選您為最佳解的!!

4 個已更新項目:

發現許多網友都對  Danie 讚譽有加,

不知您是否可告知您是如何學VBA的?

若是自修學,不知您可否把您的學習用書及方法等等

分享在您加入的知識圈(以"發表文章"來分享)?

對不起啦,

提出這樣的額外請求,

因為,感覺好像VBA跟Excel結合很不錯用,

卻沒多少人分享學習歷程及心得等等,

覺得您的學習法可能會對許多人有幫助,

只好厚顏提議!!

5 個已更新項目:

所以 Wend 寫法是對的囉?

我是想問 Wend 這幾個字是不是程式碼中的錯誤語法

及它要如何修正。

很感謝您分享學習方法!

1 個解答

評分
  • Daniel
    Lv 7
    1 0 年前
    最佳解答

    需使用VBA, 程式碼如下:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    On Error GoTo 0

    While [B4] <= 0 Or [B4] <> Int([B4])

    [A1] = [A1] + 4

    Wend

    End Sub

    按 [Alt] + [F11], 將上述程式碼貼到VBA編輯器裡

    回到工作表, 在A1輸入數值即可得結果

    2009-08-30 14:00:00 補充:

    若無法正常執行, 可能是未開啟巨集, 需將巨集安全性設定為 [中] 或 [低], 然後重新啟動EXCEL, 再執行一次

    2009-09-01 01:35:05 補充:

    參考檔案:

    http://www.go2upload.com/file/2/7c7b3c.html

    開啟檔案後, 輸入A1值, 即會自動運算

    若無自動運算, 可能是巨集未開啟, 依上方法開啟巨集再使用

    原則上, EXCEL使用IF判斷是在單向的情況下使用,

    但版大的需求為循環的判斷, 使用IF公式會造成循環參照,

    因此需使用VBA才得以達成結果

    2009-09-02 09:00:21 補充:

    按 [ESC] 鍵或是同時按 [Ctrl] + [Break], 都會使程式中斷而產生偵錯

    此時只要按一下程式編輯器的 [停止] 鍵再重新執行程式, 或按 [執行] 鍵, 讓程式繼續執行

    其實只要個人的邏輯能力夠好, 加上有心學習, 要學EXCEL的VBA則不太難

    即然版大已學過BASIC程式語言, 應對VBA很快就可以得心應手了

    個人學時是從 [將錄製巨集的語法修改] 這階段開始學習, 善用迴圈,

    然後多看書及別人寫的程冮, 慢慢學習一些不同的語法,

    製作成類似軟體執行的方式, 您就成功囉!

    推介的書籍: EXCEL VBA (大概有7~8公分厚)

    2009-09-02 23:53:28 補充:

    這裡用的的迴圈while程式碼, 結尾即為wend, 寫法為:

    While [判斷式]

    ............

    .........

    .........

    Wend

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