Thêm giá trị vào mảng Dictionary Scripting

Liên hệ QC

stao

Thành viên hoạt động
Tham gia
29/7/08
Bài viết
113
Được thích
26
Mình cần thêm giá trị vào Dictionary đã tạo trước bằng mảng. Theo ví dụ bên dưới mình cần chỉnh "d" thành "c" nhưng cách làm dic.Item(1)(2) = "c" chưa đúng thì phải. Nhờ các Bác giúp đỡ

Mã:
Sub dictest()
Set dic = CreateObject("Scripting.Dictionary")

dic.Item(1) = Array("a", "b", "d")

dic.Item(1)(2) = "c"

MsgBox Join(dic.Item(1), vbNewLine)
End Sub
 

File đính kèm

  • Them gia tri vao DIC.xlsm
    15.4 KB · Đọc: 8
Mình cần thêm giá trị vào Dictionary đã tạo trước bằng mảng. Theo ví dụ bên dưới mình cần chỉnh "d" thành "c" nhưng cách làm dic.Item(1)(2) = "c" chưa đúng thì phải. Nhờ các Bác giúp đỡ

Mã:
Sub dictest()
Set dic = CreateObject("Scripting.Dictionary")

dic.Item(1) = Array("a", "b", "d")

dic.Item(1)(2) = "c"

MsgBox Join(dic.Item(1), vbNewLine)
End Sub
Sao không gán lại Array mới. Làm thế đâu có được.
 
Upvote 0
Kiểu như vậy, đọc hiểu sẽ hiểu ngay
Mã:
Sub dictest()
Set dic = CreateObject("Scripting.Dictionary")

dic.Item(1) = Array("a", "b", "d")

t=dic.Item(1)
t(2)=c
dic.Item(1) =t

MsgBox Join(dic.Item(1), vbNewLine)
End Sub
 
Upvote 0
Mình cần thêm giá trị vào Dictionary đã tạo trước bằng mảng. Theo ví dụ bên dưới mình cần chỉnh "d" thành "c" nhưng cách làm dic.Item(1)(2) = "c" chưa đúng thì phải. Nhờ các Bác giúp đỡ

Mã:
Sub dictest()
Set dic = CreateObject("Scripting.Dictionary")

dic.Item(1) = Array("a", "b", "d")

dic.Item(1)(2) = "c"

MsgBox Join(dic.Item(1), vbNewLine)
End Sub
Bạn đọc bài này xem có giúp được gì không.
 
Upvote 0
Bạn đọc bài này xem có giúp được gì không.
Hihi vẫn chưa đủ giải được bài của mình bạn ơi
 
Upvote 0
Upvote 0
Xem bài #3 ở trên và thử chưa?
Thớt hoặc lười, xem code bài #3 khong kỹ, ngỡ gióng code của mình nên bỏ qua.
Hoặc có thử nhưng không thấy vừa ý, không buồn trả lời. (code bài #3 có lẽ do bạn quên bỏ c trong "" cho nên nó là trống, chạy sẽ không ra như ý thớt mong đợi)
 
Upvote 0
Thớt hoặc lười, xem code bài #3 khong kỹ, ngỡ gióng code của mình nên bỏ qua.
Hoặc có thử nhưng không thấy vừa ý, không buồn trả lời. (code bài #3 có lẽ do bạn quên bỏ c trong "" cho nên nó là trống, chạy sẽ không ra như ý thớt mong đợi)
Ngoài việc bỏ C trong "" thì em nghĩ thay C bằng một cái gì đó khác A B C thì sẽ thấy rõ sự thay đổi hơn ví dụ như thay C bằng H
 
Upvote 0
Thớt hoặc lười, xem code bài #3 khong kỹ, ngỡ gióng code của mình nên bỏ qua.
Hoặc có thử nhưng không thấy vừa ý, không buồn trả lời. (code bài #3 có lẽ do bạn quên bỏ c trong "" cho nên nó là trống, chạy sẽ không ra như ý thớt mong đợi)
Đúng là vậy, bác nhìn giỏi thật, lỗi này , đua theo chủ thớt không khai báo biến nên chắc không báo lỗi
Sửa như sau
Mã:
Sub dictest()
Set dic = CreateObject("Scripting.Dictionary")

dic.Item(1) = Array("a", "b", "d")

t=dic.Item(1)
t(2)="c"
dic.Item(1) =t

MsgBox Join(dic.Item(1), vbNewLine)
End Sub

Cũng có thể chủ topic, hỏi chỉ để hỏi, để hỏi cho mọi người có việc chăng (?)
 
Upvote 0
Cũng có thể chủ topic, hỏi chỉ để hỏi, để hỏi cho mọi người có việc chăng (?)
Vấn đề nằm ở đây nè
Thớt hoặc lười, xem code bài #3 khong kỹ, ngỡ gióng code của mình nên bỏ qua
Vì Bác lấy là C nó gần A B D quá chỉ xem qua cứ ngỡ không thay đổi.phải lấy cái gì đó xa thật xa :)
 
Upvote 0
Upvote 0
Hihi vẫn chưa đủ giải được bài của mình bạn ơi
Thực ra nhìn code của bạn thì bạn còn chưa phân biệt được đâu là key với item trong dictionary.Bạn nên tìm hiểu rõ làm sao để nạp thêm key vào dictionary,và làm sao thay đổi item của key đó.Mà còn thêm về mảng nữa chứ.Bạn có biết trong đoạn code của bạn có những key nào và key đó có item nào.
 
Upvote 0
Cảm ơn các Bác. Xin lỗi mình có việc bận nên chậm trễ trả lời. Khi mình vào trả lời bài 2 xong là out. Nên không thấy bài số 3 (giờ xem lại thấy bài 2 và 3 đăng cách nhau có 1 phút). Sau đó mình tìm hiểu bài trích dài luôn. Và không để ý bài 3, phần nữa chắc do giống nên tưởng trích lại bài mình. Thành thật xin lỗi vì đã làm phiền các Bác.
Theo bài 3 thì sao phải gán qua trung gian mà không đi trực tiếp vào Dic.Item(1)(2) (Key:1, giá trị thứ 3) được nhỉ?
 
Upvote 0
Theo bài 3 thì sao phải gán qua trung gian mà không đi trực tiếp vào Dic.Item(1)(2) (Key:1, giá trị thứ 3) được nhỉ?
Vậy mình quay lại bài #6 để đọc lý thuyết rồi. Đọc để biết khi nào thì lấy, khi nào thì gán; khi nào thì so sánh, khi nào thì ghi mới.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom