2015-01-11 23 views
10

Excel 2013 modelimi kullanarak, bir grafik eklerken makro, bir makro-kümelenmiş çizelgeyi yazdım. görünüm kodu seçenekte, benim aşağıda kod satırı gösterir:AddChart2 VBA makrosundaki numara ne temsil ediyor?

ActiveSheet.Shapes.Addchart2(286,xl3DColumnClustered).Select 

ben 286 temsil sayısını ne yaptığını anlayamıyorum olarak bana yardım et. Ben Addchart2 sözdizimi biliyorum:

expression.AddChart2(Style,XlChartType,Left,Top,Width,Height,NewLayout) 

Ben "285" den "286" değiştirirseniz

, grafik mavi bir arka plan ile görüntülenir. Sayı 100 ise bir hata ortaya çıkar.

Numara ne anlama geldiğini bana söyleyebilir mi?

Teşekkür ederiz.

+2

Çok ilginç bir soru (StockHLC ve StockVOHLC hariç) tüm ChartTypes için varsayılan ChartStyle gösterir /en-us/library/office/ff838167(v=office.15).aspx). Ben sadece 48 stilleri (1 ila 48 arasında değişen) bulabilirim, bu yüzden bu cevap olmayabilir (eğer 286 veya 285 ekleyebiliyorsanız) ama başlamak için iyi bir nokta. Ancak, [resmi belgeler] 'de (http://msdn.microsoft.com/en-us/library/office/jj228277%28v=office.15%29.aspx) hiçbir şey söylenmez. diğer anlamı. –

+1

Görünüşe göre, stentler [bu makaleye] göre 201-353 arasındadır (https://books.google.com/books?id=C-4-Es0OXeIC&pg=RA9-PT250&lpg=RA9-PT250&dq=addchart2.+ Excel + vba + stili + parametre ve kaynak = & OTS = pRSq7z7NGv & sig = PX7bHdDALq7CIUSgKtnMd8U2Imk ve hl = tr & sa = X ei = C8myVOCUAsW1sAT87YLYDQ & ved = 0CDkQ6AEwBA bl # v = onepage ve q = addchart2.% 20excel% 20vba% 20style% 20parameter & f = false). – peege

+0

Yukarıda belirtilen makalede, diğer grafik stilleri hakkında birçok bilgi vardır ve orijinal 1-48 çalışmaya devam ettiğini de belirtir. – peege

cevap

0

Bu doğrudan sorunuzu yanıtlamaz, ancak neler olduğunu anlamanıza yardımcı olur.

Bu, benim üzerime gelen saf bir varsayımdır, ama bunun belgelenmemiş bir bit sahası olduğunu tahmin ederdim. Bildiğiniz gibi biraz alan bir sayı kullanmak için sadece bir yoldur. Bu yüzden görüntü, 8 bit (veya bayrak) olabilen bir Byte değişkenine sahibiz. Yani bir bayt içinde 8 değere kadar saklayabiliriz.

Örnek: "DaysOpen" bitleri 1-7 alanımız var, haftanın o günü mağaza açık. (Biz. 8 bit yok sayarız) Böylece mağaza MF açıksa 0111 1100.

Sonra sadece onluya bu sayıyı dönüştürmek ikili olacağını ve bunun değişkendir O 124.

var olduğunu görüyoruz bir Variant yani bir Byte'den Long'a kadar her şey olabilir, bu da 64'e kadar farklı bayrak saklayabilirdi. Bir yan not olarak

(eğer ilgilendi) bu kadar gibi biraz alanları kullanabilirsiniz: Bir keresinde aynı durum vardı, Eh

Option Explicit 

Public Enum DayFlags 
    'Notice these are power of 2. 
    dfSunday = 1 
    dfMonday = 2 
    dfTuesday = 4 
    dfWednesday = 8 
    dfThursday = 16 
    dfFriday = 32 
    dfSaturday = 64 
End Enum 

Sub Example() 
    Dim openHours As DayFlags 
    'Set the flags: 
    openHours = dfMonday Or dfTuesday Or dfThursday 
    'See the binary? 
    MsgBox Right$("00000000" & Excel.WorksheetFunction.Dec2Bin(openHours), 8) 
    'Notice the order is right to left. This is call endianness. 
    'You can check for a specific flag like this: 
    MsgBox IsOpenOnDay(openHours, dfMonday) & vbNewLine & IsOpenOnDay(openHours, dfFriday) 
    'You can add a flag like this: 
    openHours = openHours Or dfFriday 
    MsgBox IsOpenOnDay(openHours, dfMonday) & vbNewLine & IsOpenOnDay(openHours, dfFriday) 
    'You can remove a flag like this: 
    openHours = openHours Xor dfFriday 
    MsgBox IsOpenOnDay(openHours, dfMonday) & vbNewLine & IsOpenOnDay(openHours, dfFriday) 
End Sub 

Private Function IsOpenOnDay(ByVal openHours As DayFlags, ByVal day As DayFlags) As Boolean 
    IsOpenOnDay = ((openHours And day) = day) 
End Function 
0

ve bu stilleri grafik temelde edilir. Tam numaralandırmayı anlamaya çalıştım ama sonra kayıt işleminin, burada yaptığınız gibi stil numaralarını bilmenin daha kolay bir yolu olduğunu anladım.

Soruyu yanıtlamak için makrolarınızda hangi stili uygulamak istediğinizi öğrenmek için makroları kaydedin.

6

Ayrıca, yalnızca ChartType sağlayabilir ve uygulama varsayılan stili kullanacaktır.

Set oShp = ActiveSheet.Shapes.AddChart2(XlChartType:=xl3DColumnClustered) 
oShp.Chart.SetSourceData Source:=RngDta 

Bu resim eksikliği [özellikler] (http://msdn.microsoft.com vurgulayarak

enter image description here