حلقات من خلال الخلايا، وبناء نطاق في VBA
سؤال
إنني أتطلع إلى التكرار عبر الخلايا وإنشاء نطاق للرسم البياني.مشكلتي الرئيسية هي أنني لا أستطيع معرفة كيفية دمج الحرف "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، ولكن على جهاز الكمبيوتر الخاص بي، أعطاني هذا الرسم بيانيا مع سلسلة متعددة على ذلك.
نصائح أخرى
لك لا الاضافة يدويا
i
.
وظيفةfor loop
بالفعل يفعل ذلك بالنسبة لك.
لذلك إزالة أنi = i + 1
.الآن لجعل الخاص بك
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