a.dal65
2018/09/15, 11:15
با سلام
دوستان من وقتی ماکرو رکورد میکنم ، آدرس فرمول ها رو با فرمت R1C1 رکورد میکنه .
مثلا به این صورت :
ActiveCell.FormulaR1C1 = "=IF(RC[1]=""بله"",""yesss"",""noooo"")"
که دوتا مشکل با این حالت دارم :
1- گنگ شدن فرمول ها برام
2- اگه فرمولم طولانی باشه اونو در دو خط میاره و از قسمتی که دو خطی میشه چند کاراکتر رو حذف میکنه !!!!!
مثال:
=IF(AND(G14="بله",G13="بله",G12="بله",G11="بله",G10="بله",G9="بله"),H13-E14,IF(AND(G14="بله",G13="بله",G15="بله",G11="بله",G10="بله"),H13-E14,IF(AND(G14="بله",G13="بله",G12="بله",G11="بله"),H13-E14,IF(AND(G14="بله",G13="بله",G12="بله"),H13-E14,IF(AND(G13="بله",G14="بله"),H13-E14,IF(G14="بله",H13-E14,C14-E14))))))
اگه فرمول بالا رو توی یه سلول بریزید و ماکرو رو رکورد بزنید و روی این سلول کلیلک کنید ، بصورت پایین در قالب R1c1 براتون میاره :
ActiveCell.FormulaR1C1 = _
"=IF(AND(R[-3]C=""بله"",R[-4]C=""بله"",R[-5]C=""بله"",R[-6]C=""بله"",R[-7]C=""بله"",R[-8]C=""بله""),R[-4]C[1]-R[-3]C[-2],IF(AND(R[-3]C=""بله"",R[-4]C=""بله"",R[-2]C=""بله"",R[-6]C=""بله"",R[-7]C=""بله""),R[-4]C[1]-R[-3]C[-2],IF(AND(R[-3]C=""بله"",R[-4]C=""بله"",R[-5]C=""بله"",R[-6]C=""بله""),R[-4]C[1]-R[-3]C[-2],IF(AND(R[-3]C=""بله"",R[-4]C=""بله"",R[-5]C=""بله""),R[" & _
"R[-3]C[-2],IF(AND(R[-4]C=""بله"",R[-3]C=""بله""),R[-4]C[1]-R[-3]C[-2],IF(R[-3]C=""بله"",R[-4]C[1]-R[-3]C[-2],R[-3]C[-4]-R[-3]C[-2]))))))"
حالا اگه ماکرو بالا رو استفاده کنید باید فرمول اولی رو براتون برگردونه . که میبینید خطا میگیره ! (چون قسمتیشو حذف کرده)
راهی هست وقتی رکورد میکنم ادرس فرمول ها رو به صورت عادی رکورد کنه ؟؟؟؟
(البته من خودم بعد از رکورد r1c1 رو حذف میکنم و اگه توی فرمول حرف فارسی نباشه درست کار میکنه در غیر این صورت خطا میگیره و باید حتما ازفرمت r1c1 استفاده کنم .)
ActiveCell.Formula = "=K14*K16"
این کد رو هم پیدا کردم ولی کاری باهش نتونستم انجام بدم :
application.ReferenceStyle=xlA1
application.ReferenceStyle=r1c1
در ضمن r1c1 از توی منو اکسل تیک نخورده هستش .
دوستان من وقتی ماکرو رکورد میکنم ، آدرس فرمول ها رو با فرمت R1C1 رکورد میکنه .
مثلا به این صورت :
ActiveCell.FormulaR1C1 = "=IF(RC[1]=""بله"",""yesss"",""noooo"")"
که دوتا مشکل با این حالت دارم :
1- گنگ شدن فرمول ها برام
2- اگه فرمولم طولانی باشه اونو در دو خط میاره و از قسمتی که دو خطی میشه چند کاراکتر رو حذف میکنه !!!!!
مثال:
=IF(AND(G14="بله",G13="بله",G12="بله",G11="بله",G10="بله",G9="بله"),H13-E14,IF(AND(G14="بله",G13="بله",G15="بله",G11="بله",G10="بله"),H13-E14,IF(AND(G14="بله",G13="بله",G12="بله",G11="بله"),H13-E14,IF(AND(G14="بله",G13="بله",G12="بله"),H13-E14,IF(AND(G13="بله",G14="بله"),H13-E14,IF(G14="بله",H13-E14,C14-E14))))))
اگه فرمول بالا رو توی یه سلول بریزید و ماکرو رو رکورد بزنید و روی این سلول کلیلک کنید ، بصورت پایین در قالب R1c1 براتون میاره :
ActiveCell.FormulaR1C1 = _
"=IF(AND(R[-3]C=""بله"",R[-4]C=""بله"",R[-5]C=""بله"",R[-6]C=""بله"",R[-7]C=""بله"",R[-8]C=""بله""),R[-4]C[1]-R[-3]C[-2],IF(AND(R[-3]C=""بله"",R[-4]C=""بله"",R[-2]C=""بله"",R[-6]C=""بله"",R[-7]C=""بله""),R[-4]C[1]-R[-3]C[-2],IF(AND(R[-3]C=""بله"",R[-4]C=""بله"",R[-5]C=""بله"",R[-6]C=""بله""),R[-4]C[1]-R[-3]C[-2],IF(AND(R[-3]C=""بله"",R[-4]C=""بله"",R[-5]C=""بله""),R[" & _
"R[-3]C[-2],IF(AND(R[-4]C=""بله"",R[-3]C=""بله""),R[-4]C[1]-R[-3]C[-2],IF(R[-3]C=""بله"",R[-4]C[1]-R[-3]C[-2],R[-3]C[-4]-R[-3]C[-2]))))))"
حالا اگه ماکرو بالا رو استفاده کنید باید فرمول اولی رو براتون برگردونه . که میبینید خطا میگیره ! (چون قسمتیشو حذف کرده)
راهی هست وقتی رکورد میکنم ادرس فرمول ها رو به صورت عادی رکورد کنه ؟؟؟؟
(البته من خودم بعد از رکورد r1c1 رو حذف میکنم و اگه توی فرمول حرف فارسی نباشه درست کار میکنه در غیر این صورت خطا میگیره و باید حتما ازفرمت r1c1 استفاده کنم .)
ActiveCell.Formula = "=K14*K16"
این کد رو هم پیدا کردم ولی کاری باهش نتونستم انجام بدم :
application.ReferenceStyle=xlA1
application.ReferenceStyle=r1c1
در ضمن r1c1 از توی منو اکسل تیک نخورده هستش .