اذهب الي المحتوي
أوفيسنا

عندي سؤال عن المتغيرات


ابولمى

الردود الموصى بها

أخي الكريم المستخدم

يرجى توضيح المطلوب بشيء من التفصيل

ماذا تحاول أن تقوم بفعله؟

بالنسبة للإعلان عن المتغير يكون بكلمة Dim يليها اسم المتغير ثم كلمة As  ثم نوع المتغير

على سبيل المثال

Dim R As Long

في السطر تم الإعلان عن المتغير R من النوع Long الخاص بالأرقام الصحيحة الطويلة

يمكن تعيين رقم صحيح طويل للمتغير بهذا الشكل مثلاً

R = 5000

أو يمكن الإشارة إلى قيمة خلية معينة مثلاً

R = Range("A1").Value

 

رابط هذا التعليق
شارك

بارك الله فيك اخي ياسر ..سوف اعطيك مثال لما اريد الوصول اليه ..مثلا انا لدي في عمود H  بيانات عباره عن ارقام هذه الارقام في سلسله طويله عشوائيه وهذه الارقام تارة تكون موجبه وتاره سالبه

بشكل عشوائي ..وانا اريد احصاء مجموع الارقام السالبه وايضا الارقام الموجبه ..لذلك حاولت ان اعين قيمة المتغير الى معادله

تم تعديل بواسطه مستخدم جديد9
رابط هذا التعليق
شارك

إذا كان الأمر كذلك فلما لا تستخدم معادلة بسيطة جداً بالشكل التالي

=COUNTIF(H:H,">=0")

لعد الأرقام الموجبة

والمعادلة التالية

=COUNTIF(H:H,"<0")

لعد الأرقام السالبة

اما إذا كنت تقصد المجموع فيمكن استخدام المعادلة التالية لجمع الأرقام الموجبة فقط

=SUMIF(H:H,">=0",H:H)

ولجمع الأرقام السالبة فقط استخدم المعادلة التالية

=SUMIF(H:H,"<0",H:H)

 

باستخدام الكود .. بفرض أن لديك الأرقام في العمود H .. جرب الكود التالي (النتائج تظهر بعد آخر خلية فارغة بمجموع الأرقام الموجبة والسالبة)

Sub SUMPositiveNegativeA()
    Dim C As Range, LR As Long, PositiveSum As Double, NegativeSum As Double
    LR = Cells(Rows.Count, "H").End(xlUp).Row
    Set C = Range("H1:H" & LR)
    
    PositiveSum = Application.WorksheetFunction.SumIf(C, ">=0")
    NegativeSum = Application.WorksheetFunction.SumIf(C, "<0")
    
    Range("H" & LR + 2) = "Positive: " & PositiveSum
    Range("H" & LR + 3) = "Negative: " & NegativeSum
End Sub

 

وهذا كود آخر يؤدي الغرض بدون استخدام دوال الإكسيل داخل محرر الأكواد

Sub SUMPositiveNegativeB()
    Dim C As Range, LR As Long, PositiveSum As Double, NegativeSum As Double
    LR = Range("H" & Rows.Count).End(xlUp).Row
    
    For Each C In Range("H1:H" & LR)
        If IsNumeric(C) Then
            If Sgn(C) = 1 Then PositiveSum = PositiveSum + C
            If Sgn(C) = -1 Then NegativeSum = NegativeSum + C
        End If
    Next
    
    Range("H" & LR + 2) = "Positive: " & PositiveSum
    Range("H" & LR + 3) = "Negative: " & NegativeSum
End Sub

تقبل تحياتي

  • Like 6
رابط هذا التعليق
شارك

إذا كان الأمر كذلك فلما لا تستخدم معادلة بسيطة جداً بالشكل التالي

=COUNTIF(H:H,">=0")

لعد الأرقام الموجبة

والمعادلة التالية

=COUNTIF(H:H,"<0")

لعد الأرقام السالبة

اما إذا كنت تقصد المجموع فيمكن استخدام المعادلة التالية لجمع الأرقام الموجبة فقط

=SUMIF(H:H,">=0",H:H)

ولجمع الأرقام السالبة فقط استخدم المعادلة التالية

=SUMIF(H:H,"<0",H:H)

 

باستخدام الكود .. بفرض أن لديك الأرقام في العمود H .. جرب الكود التالي (النتائج تظهر بعد آخر خلية فارغة بمجموع الأرقام الموجبة والسالبة)

Sub SUMPositiveNegativeA()
    Dim C As Range, LR As Long, PositiveSum As Double, NegativeSum As Double
    LR = Cells(Rows.Count, "H").End(xlUp).Row
    Set C = Range("H1:H" & LR)
    
    PositiveSum = Application.WorksheetFunction.SumIf(C, ">=0")
    NegativeSum = Application.WorksheetFunction.SumIf(C, "<0")
    
    Range("H" & LR + 2) = "Positive: " & PositiveSum
    Range("H" & LR + 3) = "Negative: " & NegativeSum
End Sub

 

وهذا كود آخر يؤدي الغرض بدون استخدام دوال الإكسيل داخل محرر الأكواد

Sub SUMPositiveNegativeB()
    Dim C As Range, LR As Long, PositiveSum As Double, NegativeSum As Double
    LR = Range("H" & Rows.Count).End(xlUp).Row
    
    For Each C In Range("H1:H" & LR)
        If IsNumeric(C) Then
            If Sgn(C) = 1 Then PositiveSum = PositiveSum + C
            If Sgn(C) = -1 Then NegativeSum = NegativeSum + C
        End If
    Next
    
    Range("H" & LR + 2) = "Positive: " & PositiveSum
    Range("H" & LR + 3) = "Negative: " & NegativeSum
End Sub

تقبل تحياتي

بارك الله فيك اخي ماشاءالله عليك انت جبتها صح 100%

لي عودة ربما اطلب بعض التعديلات منك اخي الكريم :)

  • Like 1
رابط هذا التعليق
شارك

أخي الكريم سعد عابد

مشكور على مرورك العطر وإعجابك بالمشاركة

وجزيت خيراً على دعائك الطيب المبارك

تقبل تحياتي

  • Like 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information