استفاده از یه تابع در تابع دیگر

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • iranweld

    • 2015/03/29
    • 3341

    #16
    نوشته اصلی توسط reza_1001
    سلام داداش دستت درد نکنه ، فایل رودیدم یه مشکلی داره و اون اینکه وقتی تاریخ رو تغییرمیدم هیچ فرقی در خروجی pl بوجود نمیاد ولی وقتی یه بار روی سلولی که تابع pl هست میرم و روی فرمولش اینتر میکنم تغییر بوجود میاد
    میدونید مشکل چیه؟
    شما باید مثل فایل اول خود نتیجه nad را در یک سلول بدست بیاورد و در توابع بعدی به آن سلول ارجاع دهید
    فایل های پیوست شده

    کامنت

    • reza_1001

      • 2013/10/04
      • 86

      #17
      خب داداش گلم ، فایل که اولش همین جور بود ، من میخواستم که برای محاسبات بعدی دیگه به سلولی که تابع nad رو محاسبه کرده ارجاع ندم
      بخاطر همین گفتم که در تابع nad بطورخودکار ورودیها روبگیره و محاسبه کنه و سپس در تابع دوم فقط 1 ورودی داشته باشیم و خروجی تابع nad رو بطور خودکار دریافت کنه به این صورت که jul_day_ut = nad باشه
      پس هنوز مشکل پابرجاست
      Last edited by reza_1001; 2020/03/10, 14:06.

      کامنت

      • iranweld

        • 2015/03/29
        • 3341

        #18
        نوشته اصلی توسط reza_1001
        خب داداش گلم ، فایل که اولش همین جور بود ، من میخواستم که برای محاسبات بعدی دیگه به سلولی که تابع nad رو محاسبه کرده ارجاع ندم
        بخاطر همین گفتم که در تابع nad بطورخودکار ورودیها روبگیره و محاسبه کنه و سپس در تابع دوم فقط 1 ورودی داشته باشیم و خروجی تابع nad رو بطور خودکار دریافت کنه به این صورت که jul_day_ut = nad باشه
        پس هنوز مشکل پابرجاست

        شما میتوانید برای توابع بعدی خود یک ورودی داشته باشید فقط در توابع دوم بصورت ثابت به سلولی که nad را محاسبه کرده ، ارجاع دهید

        کد PHP:
        Public Function pl(number_pl As Double) As Double

        Dim Jul_day_et 
        As Double


        jul_day_ut 
        number_pl Range("b10")

        pl jul_day_ut

            
        End 
        Function 

        کامنت

        • reza_1001

          • 2013/10/04
          • 86

          #19
          سلام داداش گلم ،دستت درد نکنه خیلی زحمت کشیدی ولی شاید من منظورم رو بد توضیح دادم
          اصلا نمیخوام تابع nad توی sheet باشه بلکه بصورت خودکار nad محاسبه بشه و سپس خروجی nad در تابع دوم بکار گرفته شود به این صورت
          jul_day_ut = nad.

          کامنت

          • majid_mx4

            • 2012/06/25
            • 699

            #20
            با سلام

            ضمن تشکر از دوست و استاد محترم جناب Iranweld عزیز

            راستش نمی دونم این طرفند به دردتان میخوره یا نه در هر صورت میتوانید از فرمول زیر نیز استفاده کنید. در خانه

            کد:
            =pl(B11,nad($B$3,$B$4,$B$5,$B$6,$B$7,$B$8))
            در خانه B12 یا هر خانه ای دیگر ،اگر خانه تاریخهای شما ثابت است و مرجع همیشگی آن همان خانه هاست.
            حال میتوانید اطلاعات خانه B10 را حذف کنید. چون مستقیما در Pl امده است .
            موفق باشید میر

            کامنت

            • reza_1001

              • 2013/10/04
              • 86

              #21
              سلام دستتون در نکنه ، ولی من میخواستم توی تابع این کار صورت بگیره نه توی خانه ، ثانیا توی این راه حل شما باز دوتا ورودی هست یکی b11 و دیگری nad

              کامنت

              • majid_mx4

                • 2012/06/25
                • 699

                #22
                با سلام
                امیدوارم درست متوجه منظورتان شده باشم لطفا تابع اصلاح شده زیر را تست کنید.

                توضیح : در قسمت Pl در تابع مقدار عددی وارد کنید مثلا 0.325 در ضمن میتوانید تابع را کپی و با رعایت فاصله به تاریخهای جدید رجوع دهید. مانند فایل پیوست مثلا فرمول را از خانه b12کپی و در خانه b25 پیست کنید.

                کد:
                Function nadMM(year, Month, Day, hour, min, sec As Range, pl As Double)
                      
                   Dim time As Double
                   Dim XIM As Double
                   Dim XJD As Double
                   Dim a As Double
                   Dim b As Double
                
                'Dim rngRef As Range
                'Dim nad2 As Variant
                'nad = rngRef.Address
                XIM = 12 * (CDbl(year) + 4800) + Month - 3
                
                    XJD = (2 * (XIM - Int(XIM / 12) * 12) + 7 + 365 * XIM) / 12
                    XJD = Int(XJD) + Day + Int(XIM / 48) - 32083
                    XJD = (XJD + Int(XIM / 4800) - Int(XIM / 1200) + 38)
                    
                
                
                    time = (hour + min / 60 + sec / 3600) / 24
                   
                    
                   'nad = (XJD - 0.5) + time
                     nadMM = ((XJD - 0.5) + time) * pl
                     
                    End Function
                نمونه فرمول:
                کد:
                =nadMM(B16,B17,B18,B19,B20,B21,0.325)
                سلامت باشید میر
                فایل های پیوست شده
                Last edited by majid_mx4; 2020/03/12, 16:25.

                کامنت

                • reza_1001

                  • 2013/10/04
                  • 86

                  #23
                  سلام خدمت داداش گلم ، ممنون از بابت زحمتت ولی این هم مشکلمو حل نکرد
                  یه فایل پیوست میکنم همه چیزش خوبه ،فقط وقتی تاریخ یا ساعت و...رو تغییرمیدم خروجیnad عوض نمیشه و باید یه بار در قسمت فرمول سلول pl اینتر کنم تا عددش تغییر کنه
                  اگه بتونید کاری کنید که وقتی ساعت یا تاریخ و... رو تغییر میدم خروجی تابع pl خودش عوض بشه ممنونتون میشم
                  فایل های پیوست شده

                  کامنت

                  • reza_1001

                    • 2013/10/04
                    • 86

                    #24
                    کسی نیست کمک کنه!!!!!؟؟؟؟؟

                    کامنت

                    • majid_mx4

                      • 2012/06/25
                      • 699

                      #25
                      لطفا در قسمت فرمولا چک کنید آیا روی اتوماتیک است یا دستی . چون تمامی کدهای ارسالی چک می شود و بعد ارسال می شود. و فانکشن نوشته شده درواقع از خانه ای استفاده میکند میتواند گفت نوعی فرمول است آخرین ارسال بنده کاملا با عوض کردن اعداد تغییر میکند.
                      Click image for larger version

Name:	AUTO.jpg
Views:	1
Size:	347.0 کیلو بایت
ID:	137555
                      Last edited by majid_mx4; 2020/03/15, 12:55.

                      کامنت

                      • reza_1001

                        • 2013/10/04
                        • 86

                        #26
                        چک کردم روی حالت اتوماتیک هستش
                        بله آخرین فایلی که فرستادید تغییر میکردد ولی ورودی توابع رو دستکاری کرده بودید و این رو بنده نمیخوام
                        اگه میشه روی آخرین فایلی که فرستادم کاری کنید که با تغییر اعداد خروجی pl تغییر کنه به این صورت که تابع nad بدون ورودی باشه و تابع pl فقط یک ورودی داشته باشه
                        Last edited by reza_1001; 2020/03/15, 13:10.

                        کامنت

                        چند لحظه..