標題:
[發問]
END 屬性問題運用
[打印本頁]
作者:
alex520188
時間:
2011-9-5 18:59
標題:
END 屬性問題運用
各位先進好 小弟有問題想請教
在他程式運算過程中 偵測運算出來的結果"那一格" 語法要怎樣撰寫?
我要取得 M 這個cells的位置 以利後面的語法運作
另 Cells(I, J) - Cells(I, (J - 2)) = 0 要讓他跑到不等於0 語法要怎修改
Sub AAA123()
Dim I%, J%, k% '宣告變數
Dim current As Worksheet
For Each current In Worksheets '對所有活頁簿作處理
current.Select
'J = Rows(1).End(xlToRight).Column '取得第一列最後一格有資料的值
J = 1
Do While Cells(1, J) <> "高程" '滿足條件時執行以下動作
J = J + 1
Loop
J = J - 1
Columns(J).Insert Shift:=xlToRight '向右插入一欄
k = Range("a:a").End(xlDown).Row '取得A欄最後一格有資料的值
Range(Columns(J + 1).Rows(2), Columns(J + 2).Rows(k)).Clear '欄位數值清除
Cells(1, J) = Now() '鍵入時間
For I = 2 To k Step 1 '迴圈處理
If Cells(I, (J - 1)) - Cells(I, (J - 2)) > 0 Then '若相減大於0 跑負亂數
Randomize
Cells(I, J) = Round(((-0.1 - -0.3) * Rnd + -0.3), 1) + Cells(I, (J - 1))
ElseIf Cells(I, (J - 1)) - Cells(I, (J - 2)) < 0 Then '若相減小於0 跑正亂數
Randomize
Cells(I, J) = Round(((0.3 - 0.1) * Rnd + 0.1), 1) + Cells(I, (J - 1))
Else
Cells(I, J) = "" '以上條件不成立則為空字串
End If
If Cells(I, J) - Cells(I, (J - 2)) = 0 Then
Call 等於0
End If
With Cells(I, J + 1) '求得兩者差異
.Formula = "=IF(ISBLANK(" & .Offset(0, -1).Address & "),""""," & .Offset(0, -1).Address & " - " & .Offset(0, -2).Address & ")"
End With
With Cells(I, J + 2) '求得高程
.Formula = "=IF(ISBLANK(" & .Offset(0, -2).Address & "),""""," & "b" & I & "+(" & .Offset(0, -2).Address & "*0.001)-ROUND(RAND()*0.00005,5))"
End With
If Cells(I, J) = "" Then '當此為空字串
Cells(I, J + 1) = "" '則顯示空字串
Cells(I, J + 2) = ""
End If
Next I
'Cells(1, J) = Now() '鍵入時間
Set current = Nothing '釋放物件變數
Next current
MsgBox "Worksheets working Success!!" '訊息提示
'Range(Columns(J + 2).Rows(2), Columns(J + 2).Rows(k)).Copy '高程複製
End Sub
Sub 等於0()
Dim I%, J%, k%, M%
J = 1
Do While Cells(1, J) <> "高程" '滿足條件時執行以下動作
J = J + 1
Loop
J = J - 2
M = Cells(Rows.Count, Columns(J).End(xlDown)).End(xlUp).Rows '這行寫不出來...
'M = Range("J" & 65536).End(xlUp).Rows
If Cells(M, (J - 1)) - Cells(M, (J - 2)) > 0 Then '若相減大於0 跑負亂數
Randomize
Cells(M, J - 1) = Round(((-0.1 - -0.3) * Rnd + -0.3), 1) + Cells(M, (J - 1))
ElseIf Cells(M, (J - 1)) - Cells(M, (J - 2)) < 0 Then '若相減小於0 跑正亂數
Randomize
Cells(M, J - 1) = Round(((0.3 - 0.1) * Rnd + 0.1), 1) + Cells(M, (J - 1))
End If
End Sub
複製代碼
已附上檔案
請各位大大指教
作者:
GBKEE
時間:
2011-9-7 16:04
回復
1#
alex520188
Cells(I, J) - Cells(I, (J - 2)) = 0 要讓他跑到不等於0 語法要怎修改
If Cells(I, J) - Cells(I, (J - 2)) <> 0 Then
沒看到附檔阿!
作者:
alex520188
時間:
2011-9-7 17:03
回復
2#
GBKEE
已補上~[attach]7756[/attach]
作者:
Hsieh
時間:
2011-9-7 18:45
M = Cells(Rows.Count, j).End(xlUp).Row
作者:
alex520188
時間:
2011-9-7 23:50
回復
4#
Hsieh
M = Cells(Rows.Count, j).End(xlUp).Row
謝謝hsieh板主的指點 沒想到這麼簡單一句 我卻想不出來
我的第二個問題
"Cells(I, J) - Cells(I, (J - 2)) = 0 要讓他跑到不等於0 語法要怎修改
" 可能說的不是很清楚
我換個方式表達
Randomize 我有設區間給他跑 但是經過Sub 等於0() 這個程式之後 Cells(I, J)還是有機率會跑出與Cells(I, J-2)同樣的值
有什麼方法可以讓它亂數過後的值都不相等呢
作者:
alex520188
時間:
2011-9-8 00:08
代碼更正
Cells(M, J - 1) 改成Cells(M, J )
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)