2012-11-13 40 views
6

Tôi đã viết code VBA để đặt tên hàng loạt trong một đồ thị:cách tìm tên chuỗi sử dụng vba?

ActiveChart.SeriesCollection(1).name = "SPEC" 
ActiveChart.SeriesCollection(2).name = "manju" 

Vấn đề của tôi là tôi muốn tìm tên hàng loạt đặc biệt sử dụng mã VBA. Trong đoạn mã trên, tôi có hai chuỗi. Bây giờ tôi muốn tìm tên chuỗi (manju) bằng cách sử dụng mã vba.

+0

Có lý do bất kỳ lý do tại sao 'MsgBox (ActiveChart.SeriesCollection (2) .name) 'sẽ không hoạt động? –

+0

@lynn đổ nát cảm ơn bạn –

+0

@LynnCrumbling Tôi muốn tìm kiếm tất cả các chuỗi bởi vì mỗi lần nó sẽ b vị trí khác nhau –

Trả lời

9

Để truy cập vào SeriesCollection() bằng cách truyền tên bạn có thể:

MsgBox ActiveChart.SeriesCollection("manju").Name 

Đó là có thể bởi vì index trong SeriesCollection(index) thực sự là của Variant loại quá trình biên dịch hoạt động ra nếu bạn đang đi qua một loại String và cố gắng truy cập theo tên hoặc nếu bạn đang chuyển một Long/Integer (hoặc bất kỳ loại dữ liệu số nào khác) để truy cập vào điều tra viên.

hoặc lặp các SeriesCollection, so sánh tên hiện tại chống lại "manju":

For i = 1 to ActiveChart.SeriesCollection.Count 
    If ActiveChart.SeriesCollection(i).name = "manju" Then 
     MsgBox "Found it!" 
     Exit for 
    End if 
Next 
+0

Lynn, điều này có nghĩa là bạn không thể truy cập chuỗi theo tên ? – rrs

+3

@rrs Đúng - không phải phương thức '.Item()' cũng như trình chỉ mục hỗ trợ chuỗi ... chỉ là số chỉ mục. –

+1

Đối với Office 2007 (Tôi chưa kiểm tra phiên bản cũ hơn), bạn chắc chắn có thể truy cập vào 'SeriesCollection' bằng tên của nó. Tức là 'ActiveChart.SeriesCollection (" manju ")'. Xem tài liệu Office 2010 tại đây nêu rõ: http://msdn.microsoft.com/en-us/library/office/ff836171%28v=office.14%29.aspx – CuberChase

Các vấn đề liên quan