-1
EXCEL VBA子程序通信,我想縮短這個代碼,我知道這是可能的,我只是不知道正確的語法的範圍更新
我想創建一個子程序來更新字體顏色,只是把它從如果只改變第一小區字母陳述
會有人介意幫助,所以我可以記住這一點,以備將來參考
在此先感謝,
編輯:只是爲了澄清,我想要做的事像這樣
If Not Intersect(Target, Range("C3")) Is Nothing Then 'do the following if e3 is updated
'reset all font colors to black
Range("C8:K9,C14:K14,C37:K37").Font.ColorIndex = 1
Range("C7:K7,C11:K11,C13:K13,C23:K23,C28:K28").Font.ColorIndex = 1
Range("C10:K10,C15:K16").Font.ColorIndex = 1
Range("C17:K17").Font.ColorIndex = 1
Range("C18:K18,C33:K33").Font.ColorIndex = 1
Range("C24:K26,C29:K31").Font.ColorIndex = 1
Range("C32:K32").Font.ColorIndex = 1
Range("C36:K36,C38:K38").Font.ColorIndex = 1
If Range("C3") = "1" Then ' do the following if C3 is 1
updateFontColor c
ElseIf Range("C3") = "2" Then ' do the following if C3 is 2
updateFontColor d
ElseIf Range("C3") = "3" Then ' do the following if C3 is 3
updateFontColor e
ElseIf Range("C3") = "4" Then ' do the following if C3 is 4
updateFontColor f
ElseIf Range("C3") = "5" Then ' do the following if C3 is 5
updateFontColor g
ElseIf Range("C3") = "6" Then ' do the following if C3 is 6
updateFontColor h
ElseIf Range("C3") = "7" Then ' do the following if C3 is 7
updateFontColor i
ElseIf Range("C3") = "8" Then ' do the following if C3 is 8
updateFontColor j
ElseIf Range("C3") = "9" Then ' do the following if C3 is 9
updateFontColor k
End If
End If
Sub updateFontColor(x As Range)
Range("x8:K9,x14:x14,x37:K37").Font.ColorIndex = 2
Range("x7:K7,x11:K11,x13:K13,x23:K23,x28:K28").Font.ColorIndex = 39
Range("x10:K10,x15:K16").Font.ColorIndex = 35
Range("x17:K17").Font.ColorIndex = 28
Range("x18:K18,x33:K33").Font.ColorIndex = 38
Range("x24:K26,x29:K31").Font.ColorIndex = 36
Range("x32:K32").Font.ColorIndex = 44
Range("x36:K36,x38:K38").Font.ColorIndex = 15
End Sub
chr(65)是「A」,所以'chr(64+ yourcellvalue + 2)'會給你你需要的列字母。 –
對不起,我不知道如何幫助,也許我只是沒有得到它,我編輯我的帖子,以澄清我想要做什麼...... – maxgohan
如果您計算從單元格值的列字母(並傳遞給如雅各布所示),那麼你不需要所有這些'如果... elseif ...'語句 –