سؤال

إنني أتطلع إلى التكرار عبر الخلايا وإنشاء نطاق للرسم البياني.مشكلتي الرئيسية هي أنني لا أستطيع معرفة كيفية دمج الحرف "i" في النطاق.مثال:

Dim name As String
Dim newChart as Chart
Dim i as Integer
Set newChart = Charts.add    

For i = 1 To 20

    accName = Range("C" & i).Value          'I understand why this works. 

    With newChart
        .ChartType = xlColumnClustered
        .SeriesCollection.NewSeries     
        .SeriesCollection(1).Name = accName
        .SeriesCollection(1).Values = wb.Worksheets("Summary-Account").Range("E&i:G&i, I&i:K&i, M&i:O&i, Q&i:S&i")          'How can I get this to work?
        .SeriesCollection(1).XValues = wb.Worksheets("Summary-Account").Range("E3:G3, I3:K3, M3:O3, Q3:S3")
    End With

    i = i + 1

Loop
هل كانت مفيدة؟

المحلول

ربما تحتاج إلى أن يكون لديك:

giveacodicetagpre.

ليس أوضح خط على الإطلاق، ولكن يجب أن أعطيك النمط للذهاب إليه.هناك مشاكل أخرى مثل الحاجة إلى "التالي أنا" بدلا من "حلقة" ولا i= i + 1، ولكن على جهاز الكمبيوتر الخاص بي، أعطاني هذا الرسم بيانيا مع سلسلة متعددة على ذلك.

نصائح أخرى

  1. لك لا الاضافة يدويا i.
    وظيفة for loop بالفعل يفعل ذلك بالنسبة لك.
    لذلك إزالة أن i = i + 1.

  2. الآن لجعل الخاص بك Range العمل, كنت في حاجة لها "" أن يكون شيئا من هذا القبيل : Range("E" & i & ":G" & i).أنا لا أفهم تماما ما كنت تحاول تحقيق مع محاولة أخذ البيانات من 6 أعمدة مختلفة..انظر مجموعة للحصول على مزيد من المعلومات.

حاول

giveacodicetagpre.

سيقوم هذا بنسخ جميع القيم إلى صفيف للاستخدام في مجموعة Series

يستخدم Next i بدلاً من Loop;والتخلص من ذلك i = i+1.أيضا استخدام "E" & i & ":G" & i بدلاً من "E&i:G&i"

خطوة أخرى إلى الأمام، في vba

Dim i as double
For i = 1 to 100 Step 10  '<= Step 10 means when updating i, i = i + 10, and default value would be 1
Loop  '<=breaks here, compile error is expected.

هذا غير صالح حتى في بناء الجملة، الكلمة الأساسية Loop يرتبط بكلمة رئيسية أخرى Do, ، و For يرتبط ب Next

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top