![]() |
||
|
Major Member
![]() 加入日期: Jan 2002 您的住址: 台北~台中
文章: 256
|
Excel VBA問題??
各位大大好,
小弟有各問題想請教各位 如果column B、C、D分別代表時間、地點、人 (此時字型色彩為黑色) 而row則是分別代表每個事件 舉例來說B1為10/24、C1為小巨蛋、D1為我與弟 B2為10/25、C2為體育館、D2為我與同學 其餘類推...... 若現在假若任何一個事件的 B、C、D任一數值改變,我會以紅字表示 以上動作都是使用人工 ----------------VBA要做的事情----------------- 但現在問題為我希望任何一事件若有改變 舉例來說即B1、C1、D1內若有一格為紅色,則在A1顯示數值"1",若皆無改變A1則強制輸入空白值 其餘類推...... ----------------VBA要做的事情----------------- 請問如何使用excel VBA,寫出來呢?? PS: 小弟上述例子為簡化表示,事實上的事件大約有5000多各,若要一各一各慢慢判斷可能會死人阿 ![]()
__________________
有多久沒有和老朋友見面了? 真誠的關心 會被永遠記得 見了面也不須太多話 只要用心地說出──好久不見。 此文章於 2010-05-29 06:21 PM 被 onizuka-t 編輯. |
|||||||
|
|
|
Master Member
![]() ![]() ![]() ![]() 加入日期: Sep 2003
文章: 2,102
|
你的問題好像不用VBA也可以做出來
不知道你說一各一各慢慢判斷是什麼意思? 用VBA做好像沒有比較快? 或者你少說明什麼 直接把檔案傳上來吧 無聊的人會幫你作
__________________
[ExtremeTech]VGAMaster |
||
|
|
|
Major Member
![]() 加入日期: Jan 2002 您的住址: 台北~台中
文章: 256
|
引用:
一各一各慢慢判斷是指此若B、C、D若有有改變者,A要打上1 若我資料有5000多行(row),則我要檢查B、C、D 行(column)各別5000多次,而B、C、D內若有任何一數字變成紅色,則我要在相對應的A行(row)打上1 這實在是很花時間,但卻是可以使用VBA作的routine工作,故才想請教各位大大的
__________________
有多久沒有和老朋友見面了? 真誠的關心 會被永遠記得 見了面也不須太多話 只要用心地說出──好久不見。 |
|
|
|
|
Master Member
![]() ![]() ![]() ![]() 加入日期: Sep 2003
文章: 2,102
|
簡單表格裡面的=if(a=b,1,0)這種作不出來嗎?
因為VBA是比較進階的東西, 用簡單的題目用進階的做 感覺怪怪的 直接把檔案分享好了
__________________
[ExtremeTech]VGAMaster 此文章於 2010-05-29 07:38 PM 被 airitter 編輯. |
|
|
|
New Member
加入日期: Dec 2001
文章: 5
|
Sub test()
Dim A As String, B As String, C As String, D As String Dim i As Integer For i = 1 To 10 '這裡只假設有10筆資料,且資料存在於同一worksheet A = "A" & i B = "B" & i C = "C" & i D = "D" & i If Range(B).Font.ColorIndex = 3 Then Range(A).Value = 1 ElseIf Range(C).Font.ColorIndex = 3 Then Range(A).Value = 1 ElseIf Range(D).Font.ColorIndex = 3 Then Range(A).Value = 1 Else Range(A).Value = "" End If Next i End Sub |
|
|
|
Major Member
![]() 加入日期: Jan 2002 您的住址: 台北~台中
文章: 256
|
引用:
謝謝大大,照您的寫的VBA已經可以成功了 感恩阿 ~~~~省了好多時間阿不過想請教若我要判斷的欄位有B至M, P至W 照您的寫法在宣告Dim A與A = "A & i 的地方 要分別寫出B至M, P至W的程式碼(這樣程式碼很冗長) 請問有更簡潔的方法寫出這些嗎??
__________________
有多久沒有和老朋友見面了? 真誠的關心 會被永遠記得 見了面也不須太多話 只要用心地說出──好久不見。 |
|
|
|
|
New Member
加入日期: Dec 2001
文章: 5
|
請不要叫我大大,我不是專門寫程式的,VBA的變數宣告有些怪,沒法一次宣告同樣的性質
Sub test() Dim i As Integer, j As Integer For i = 1 To 10 '假設資料10筆,並存於同一worksheet For j = 2 To 23 If j <> 14 And j <> 15 Then If ActiveSheet.Cells(i, j).Font.ColorIndex = 3 Then ActiveSheet.Cells(i, 1).Value = 1 Exit For Else ActiveSheet.Cells(i, 1).Value = "" End If End If Next j Next i End Sub |
|
|