Có cách nào nạp một loạt giá trị Name (Name trong Name Manager) vào các Biến tương ứng trong VBA hay không?

Liên hệ QC

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
925
Được thích
240
Giới tính
Nam
Xin chào các bạn GPE!
Có cách nào nạp một loạt giá trị Name (Name trong Name Manager) vào các Biến tương ứng trong VBA hay không?
Untitled 01.png
Untitled 02.png
Mong các bạn chỉ giúp cho
Xin cảm ơn
 

File đính kèm

  • Nap gia tri Name vao Bien tuong ung.xls
    55.5 KB · Đọc: 10
Thử xem sao

Từ File A sử dụng Application.Run gọi hàm File B xong tái sử dụng lại cái biến Linh tinh lang tang file B Sang file A

Vẻ ra cho vậy xong tự dò lấy xem sao
 
Upvote 0
"Phiên" này là gì bạn ơi? (Phiên bản hay là phiên làm việc, hay là phiên gì đó)
hay phiên phiến cũng nên bác. /*-*/
Nếu là 2 file Excel khác nhau nhưng muốn truyền tham số cho nhau thì có một cách lòng vòng khác là: File A lưu tên biến và giá trị của nó vào file tạm (.csv, .txt) rồi từ file B đọc file tạm đó.
Một cách khác là dùng "Hidden name space" nó lưu thông tin vào bộ nhớ ở tầm vực Application chứ không phải Workbook. Nên nếu mở các workbook cùng một phiên Excel (Excel instance - không biết dịch ra là gì) thì có thể cùng sử dụng. Bạn tìm hiểu Application.Execute4Macro xem có đáp ứng yêu cầu không.
Còn 1 cách khác em hay dùng là lưu vào registry. Chủ bài đăng tìm hiểu Savesetting, Getsetting và deletesetting
 
Upvote 0
Thớt hiển nhiên là cứ đòi hỏi chuyện làm đồ án tập file mà bao lâu nay không hề tìm hiểu về PERSONAL.xlsb
File Reference chỉ dùng để khỏi mất công lục file name ra thôi.
Nếu có filename đầy đủ (fullpath) thì cứ gọi thẳng như hàm của PERSONAL
Tôi bỏ lửng vậy xem có biết tự tìm hiểu thêm hôn.

Đồ án ở đây không mấy ai hơn tôi đâu. Công việc của toi là Project Manager.
 
Upvote 0
Thớt hiển nhiên là cứ đòi hỏi chuyện làm đồ án tập file mà bao lâu nay không hề tìm hiểu về PERSONAL.xlsb
File Reference chỉ dùng để khỏi mất công lục file name ra thôi.
Nếu có filename đầy đủ (fullpath) thì cứ gọi thẳng như hàm của PERSONAL
Tôi bỏ lửng vậy xem có biết tự tìm hiểu thêm hôn.

Đồ án ở đây không mấy ai hơn tôi đâu. Công việc của toi là Project Manager.
Tôi cũng biết về PERSONAL.xlsb, nhưng mà tôi dùng File Add_In tiện hơn.

Nhu cầu của tôi là: Khi gán giá trị vào Biến Phieuchi (Khi đó Mũi tên màu vàng đang ở Module File Excel A), sau đó Mũi tên màu vàng chạy sang Module ở File Excel B thì Biến Phieuchi (Cùng tên biến PhieuchiFile Excel A) ở File Excel B tự động cập nhật giá trị (Giống như là biến ở dạng Public vậy)
Tôi đang dùng phương pháp nạp giá trị vào biến bằng Name trong File Excel, tôi cũng đang tìm hiểu về Hidden name space), nhưng mà hình như giống nhau (Đều là qua trung gian gọi là Name, một đằng là Name nằm ở File Excel, còn một đằng là Name ở trên Application)
 
Upvote 0
Một cách khác là dùng "Hidden name space" nó lưu thông tin vào bộ nhớ ở tầm vực Application chứ không phải Workbook.
Tôi nghiên cứu rồi bạn ah. Nhưng mà hình như đều qua trung gian gọi là Name
Nhu cầu thực sự của tôi là: Khi gán giá trị vào Biến Phieuchi (Khi đó Mũi tên màu vàng đang ở Module File Excel A), sau đó Mũi tên màu vàng chạy sang Module ở File Excel B thì Biến Phieuchi (Cùng tên biến PhieuchiFile Excel A) ở File Excel B tự động cập nhật giá trị (Giống như là biến ở dạng Public vậy)


Mà thôi, dùng qua Name cũng được.
Có điều khi truyền giá trị từ Name vào các biến ở File Excel B thì nó lắt nhắt dài dòng, dạng như vầy:
Mã:
Phieuthu = Workbooks(Filedieukhien).Names(Phieuthu_Name)
Phieuchi = Workbooks(Filedieukhien).Names(Phieuchi_Name)
Giaydenghitamung = Workbooks(Filedieukhien).Names(Giaydenghitamung_Name)
...
=> Không biết là có cách nào dùng vòng lặp để nạp giá trị từ Name vào các biến tương ứng không nhỉ?
 
Upvote 0
Tôi nghiên cứu rồi bạn ah. Nhưng mà hình như đều qua trung gian gọi là Name
Nhu cầu thực sự của tôi là: Khi gán giá trị vào Biến Phieuchi (Khi đó Mũi tên màu vàng đang ở Module File Excel A), sau đó Mũi tên màu vàng chạy sang Module ở File Excel B thì Biến Phieuchi (Cùng tên biến PhieuchiFile Excel A) ở File Excel B tự động cập nhật giá trị (Giống như là biến ở dạng Public vậy)


Mà thôi, dùng qua Name cũng được.
Có điều khi truyền giá trị từ Name vào các biến ở File Excel B thì nó lắt nhắt dài dòng, dạng như vầy:
Mã:
Phieuthu = Workbooks(Filedieukhien).Names(Phieuthu_Name)
Phieuchi = Workbooks(Filedieukhien).Names(Phieuchi_Name)
Giaydenghitamung = Workbooks(Filedieukhien).Names(Giaydenghitamung_Name)
...
=> Không biết là có cách nào dùng vòng lặp để nạp giá trị từ Name vào các biến tương ứng không nhỉ?
Tôi thấy tài liệu ghi là hidden name space thường dùng cho các Addin đó bạn. Để tôi tìm hiểu trường hợp của bạn xem như thế nào.
 
Upvote 0
Tôi thấy tài liệu ghi là hidden name space thường dùng cho các Addin đó bạn. Để tôi tìm hiểu trường hợp của bạn xem như thế nào.
Bạn có thấy kiến thức ở mấy bài gần đây khác hẳn với kiến thức cúa người viết bài #1 không?
Tôi đã giải thích là thớt có mấy cái projects, nhưng kiến thức về hệ thống phần mềm thì có hạn cho nên có những ý tưởng mà người khác không thể có được. Sỡ dĩ thớt còn làm việc được là vì trong nhóm coders có vài thằng rất giỏi (tiếc cho thớt là mấy thằng này giấu nghề cho nên kiến thức thớt học từ chúng không có căn bản).

Theo tôi thấy thì cỏ vẻ như thớt chưa biết phân biệt "namespace" và "names".
Nếu thực sự hiểu, và thực sự có sử dụng qua PERSONAL.xlsb như vừa khoe thì đã biết cách làm cái bài này rồi (trích bài #1)
"Có cách nào nạp một loạt giá trị Name (Name trong Name Manager) vào các Biến tương ứng trong VBA hay không?"
 
Upvote 0
Tôi có làm cái ví dụ (đơn giản thôi nhé) minh họa cho việc dùng PERSONAL.xlsb như hình. Ví dụ này cũng phải cùng một phiên làm việc Excel thì mới truyền tham số được nhé.
Có máy có sẳn file này, có máy không (máy tôi không có sẵn, nên phải tự tạo). File này tự chạy khi Excel khởi chạy.


 
Upvote 0
Tôi có làm cái ví dụ (đơn giản thôi nhé) minh họa cho việc dùng PERSONAL.xlsb như hình. Ví dụ này cũng phải cùng một phiên làm việc Excel thì mới truyền tham số được nhé.
Có máy có sẳn file này, có máy không (máy tôi không có sẵn, nên phải tự tạo). File này tự chạy khi Excel khởi chạy.
...
Điểm chính của Personal.xlsb là nó mở ra và tự chạy khi Excel khởi động (giống như các add-ons khác).
Chung quy: nếu cần proterties của file khác thì cái application ấy phải mở cái file ấy, cách gọi hàm thì cũng giống như gọi của Personal.
 
Upvote 0
Web KT
Back
Top Bottom