恩,我想做一個年、月相轉換的工作表
但剛發現我邏輯打結了..
利用事件程序來做..
但卻不知語法要怎麼打
圖示如下:
我的判斷條件是先判斷年,再轉成月,
然後若月期有更動,理應年要跟著變
但因為if 先判斷了年,所以月變動時,他會適為年欄的格內有值,所以年欄值不會動..
哈..高手幫個忙唄,感謝啊..想到頭都痛了
對了,因為我是先設當年數欄<>"" 時才進入判斷條件
所以這邏輯有錯..因為不論是先輸入年期,或先輸入月期
都會使得年期的格內有值了..
如此一來在同一列的年或月期一經更改,因為年期欄位內已有值...所以就不會動作了
語法大致如下:
If Cells(myRow, 期數年欄) <> "" Then
Cells(myRow, 期數月欄) = Cells(myRow, 期數年欄) * 12
ElseIf Cells(myRow, 期數月欄) <> "" Then
Cells(myRow, 期數年欄) = Cells(myRow, 期數月欄) / 12
End If
註:不知有沒有方法可以較口語化..如
如果年欄或月欄有變動,另一欄就得強迫被更動..
恩.就這一句...我思考到快天亮了= ="""
==============
另外想多請達人能解另一疑惑..
那就是個人發現我在事件程序撰寫程序時,若邏輯有誤,常會出現中斷,再手動按停止鍵後,但事件程序卻不再動作了.(無法如同一般模組下的程序,在按下停止鍵後,重新執行該巨集即可重新動作)
此時我只好必須將""所有已開啟的活頁簿""全部關上,再重啟那個有事件程序的活頁簿後,才能使那內部的事件程序處於常駐..
我想請教的是有沒有方法可以不用關閉所有已開啟的活頁簿,就能讓中斷的事件程序重啟?謝謝高手們.
因為這樣真的很麻煩,必須關掉excel所有的活頁簿...= ="""
這問題困擾我甚久
Orz
joblyc017 wrote:
是指影片中的效果嗎?
這種寫法很適合教學用,每行都是基礎語法
就算是初學者也很容易看懂,做的很好
提供另一種不適合教學的,只是為了偷懶少打幾個字的寫法
這種要解說起來就有點麻煩(使用您的範例改寫)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 1 Or Target.Column > 2 Then Exit Sub
Dim r As Range
Application.EnableEvents = False
For Each r In Target
r.Offset(0, IIf(r.Column = 1, 1, -1)) = IIf(r = "", "", Evaluate(r & IIf(r.Column = 1, "*12", "/12")))
Next
Application.EnableEvents = True
End Sub