کسي مي تونه اين فرمول VBA (اکسل)رو تبديل به تابع عمومي کنه؟(مثل توابع sum , CHAR)
Range("A2").Interior.Color = RGB(100, 100, 30)
اين فرمول رنگ سلول A2 رو به کد رنگ (100و100و30) تغيير مي ده ( البته درمحيط vba اکسل نه تو خود اکسل)
و منم مي خواستم اين فرمول يک تابعي مثل sum باشه که کد رنگ رو خودم در محيط اکسل بدم و رنگ سلول دلخواه را تغيير بدم.(يعني نيازي به محيط vb نباشه و هم نيازي يه استفاده از fill color exel نباشه.)
تو اين فايل اکسل سؤالم بيشتر قابل فهمه:
http://hasanzarei.persiangig.com/Cell.xlsx___________________________________________________________________________
ضمنا اين کد رو به شيتم اضاف کردم ولي نميشه اين رو تبديل به يه تابع کرد نه ماکرو_(ميخوام يک ماژول باشه تا بتونم راحت به شيتهام اضافه کنم)
چون اين example اي که گذاشتم فقط واسه نمونه بود در حقيقت بيش از 100000 کد رنگ هست و من ميخوام جهت دقت بيشتر نيازي به محيط vba نداشته باشم(جهت تغيير دادن متغييرها)
در ضمن اين ماکرو بيشتر از 6492 cell رو تغيير نميده و err سرريز بافر ميده که به long تغيير دادم که بازم فرقي نکرد.
Private Sub Worksheet_Activate()
Dim i As Integer
For i = 2 To 342
Range("A" & i).Interior.Color = RGB(Range("D" & i), Range("E" & i), Range("F" & i))
Next
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
i = Target.Row
If Target.Column > 3 And Target.Column < 7 And i > 1 Then
Range("A" & i).Interior.Color = RGB(Range("D" & i), Range("E" & i), Range("F" & i))
End If
End Sub