標題:
請教儲存格內容比較與運算問題(已解決)
[打印本頁]
作者:
jiuhtsair
時間:
2011-4-25 19:48
標題:
請教儲存格內容比較與運算問題(已解決)
本帖最後由 jiuhtsair 於 2011-8-23 17:54 編輯
我有五個儲存格分別是A1,B1,C1,D1,E1,F1,G1。如果A1小於或等於B1則將C1的內容與D1的內容相加放入D1,否則便將C1的內容與E1的內容相加放入E1。
我寫的程式碼如下,可是沒有作用,請大大們幫我看看哪裡錯了!謝謝!
X = Sheets(1).Cells(1, 1) 'A1內容
Y = Sheets(1).Cells(1, 2) 'B1內容
Z = Sheets(1).Cells(1, 3) 'C1內容
If X <= Y Then Sheets(1).Cells(1, 4) = Z Else Sheets(1).Cells(1, 5) = Z '如果A1<=B1則D1=C1 否則 E1=C1
Sheets(1).Cells(1, 6) = bid_t1 'bid_t1=D1
Sheets(1).Cells(1, 7) = ask_t1 'ask_t1=E1
If X <= Y Then bid_t1 = bid_t1 + Z Else ask_t1 = ask_t1 + Z '如果A1<=B1則C1 +D1放入D1否則 C1+E1放入E1
作者:
jiuhtsair
時間:
2011-4-25 19:56
抱歉!陳述有所錯誤,重新陳述:
我有七個儲存格分別是A1,B1,C1,D1,E1,F1,G1。如果A1小於或等於B1則將C1的內容放入D1,同時將C1的內容與D1的內容相加放入F1,否則便將C1的內容與E1的內容相加放放入G1。
我寫的程式碼如下,可是沒有作用,請大大們幫我看看哪裡錯了!謝謝!
X = Sheets(1).Cells(1, 1) 'A1內容
Y = Sheets(1).Cells(1, 2) 'B1內容
Z = Sheets(1).Cells(1, 3) 'C1內容
If X <= Y Then Sheets(1).Cells(1, 4) = Z Else Sheets(1).Cells(1, 5) = Z '如果A1<=B1則D1=C1 否則 E1=C1
Sheets(1).Cells(1, 6) = bid_t1 'bid_t1=F1
Sheets(1).Cells(1, 7) = ask_t1 'ask_t1=G1
If X <= Y Then bid_t1 = bid_t1 + Z Else ask_t1 = ask_t1 + Z '如果A1<=B1則C1 +D1放入F1否則 C1+E1放入G1
作者:
Hsieh
時間:
2011-4-25 23:34
if [A1]<=[B1] then
[D1]=[C1].value:[F1]=[C1]+[D1]
else
[G1]=[C1]+[E1]
end if
作者:
jiuhtsair
時間:
2011-4-26 19:36
我把程式輸入,同時輸入A1,B1,C1三個儲存格數值,執行後沒有告訴我任何錯誤..有執行 If ...Then...Else的判斷式..但是D1,E1,F1,G1都沒有任何動作,.想請教要如何修改?謝謝!
Private Sub Worksheet_Calculate()
On Error Resume Next
C1 = Sheets(1).Cells(1, 1) 'A1
B1 = Sheets(1).Cells(1, 2) 'B1
S1 = Sheets(1).Cells(1, 3) 'C1
bid_s1 = Sheets(1).Cells(1, 4) 'D1
bid_t1 = Sheets(1).Cells(1, 5) 'F1
ask_s1 = Sheets(1).Cells(1, 6) 'E1
ask_t1 = Sheets(1).Cells(1, 7) 'G!
If [C1] <= [B1] Then [bid_s1] = [S1].Value: [bid_t1] = [bid_t1] + [S1] Else [ask_s1] = [S1].Value: [ask_t1] = [ask_t1] + [S1]
End Sub
作者:
jiuhtsair
時間:
2011-4-26 20:15
我發現自己少打了end if,加入後,程式如下:
Private Sub Worksheet_Calculate()
On Error Resume Next
C1 = Sheets(1).Cells(1, 1) 'A1
B1 = Sheets(1).Cells(1, 2) 'B1
S1 = Sheets(1).Cells(1, 3) 'C1
bid_s1 = Sheets(1).Cells(1, 4) 'D1
bid_t1 = Sheets(1).Cells(1, 5) 'F1
ask_s1 = Sheets(1).Cells(1, 6) 'E1
ask_t1 = Sheets(1).Cells(1, 7) 'G!
If [C1] <= [B1] Then
[bid_s1] = [S1].Value: [bid_t1] = [bid_t1] + [S1]
Else
[bid_s1] = [S1].Value: [bid_t1] = [bid_t1] + [S1]
End If
End Sub
但是結果仍是一樣...D1,E1,F1,G1都沒有數字出現....
作者:
Hsieh
時間:
2011-4-26 21:02
1.Worksheet_Calculate是由公式重算觸發,輸入數值是觸發Change事件
2.變數與儲存格標示觀念混淆
[bid_t1]你沒有這樣的名稱
bid_t1是變數不能用中刮弧包裝
若變數要指定為儲存格物件必須使用Set陳述式
依照你的敘述,A1跟B1應該是用公式取得才能使用Calculate事件
程式碼:
Private Sub Worksheet_Calculate()
If [A1] <= [B1] Then
[D1] = [C1].Value: [F1] = [C1] + [D1]
Else
[G1] = [C1] + [E1]
End If
End Sub
複製代碼
作者:
jiuhtsair
時間:
2011-4-26 22:38
謝謝大大費心解答!這個解答對我有些難以理解。我先研究Worksheet_Calculate和Change事件,等有所了解再來請教...謝謝!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)