NetForVBA: Thư viện .NET Framework dùng cho VBA (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

thuanfun

Thành viên chính thức
Tham gia
7/2/09
Bài viết
83
Được thích
94
Giới tính
Nam
Chào các bác!

Em mới mày mò tìm ra cách sử dụng được các đối tượng .NET Framework trong lập trình VBA nên cho ra đời thư viện NetForVBA.
NetForVBA cung cấp cho code VBA một phương pháp để tận dụng sức mạnh của .NET Framework vào ứng dụng VBA của mình.
Các đối tượng được khai báo, xử lý giao diện, sự kiện, ... hoàn toàn bằng code VBA.

Hình dưới là Form có tên class là dnForm, so với VBA UserForm thì dnForm có nhiều điểm mạnh kế thừa từ .NET như có sẵn icon, các nút minimum, maximum, thay đổi kích thước bằng kéo chuột, … và dnForm có thể chứa tất cả các control thông thường của .NET , đặc biệt là ListView, DataGridView, DateTimePicker, MonthCalendar, ToolStrip, ContextMenuStrip, WebBrowser… thông qua các đối tượng dn*** tương ứng (dnListView, …).

Các bác tải về ở đây ạ! Download NetForVBA

Thư viện em mới phát triển nên chắc chắn còn nhiều thiếu sót, rất mong nhận được nhiều ý kiến góp ý của các bác.
Em xin cảm ơn!

PS: Em sẽ viết bài hướng dẫn code cụ thể dần dần phía dưới các bác nhé!

dnForm.png
 
Lần chỉnh sửa cuối:
Cài đặt NetForVBA

NetForVBA
yêu cầu hệ thống như sau:

  • Hệ điều hành Windows: WinXP, Win7, Win8, Win10, WinServer
  • Microsoft .NET Framework 4.0 (Tải về ở đây)
  • Microsoft Excel 2007 trở lên
Tải về: NetForVBA.zip và giải nén được thư mục như sau:

How%20to%20Install%20NetForVBA.png

(Thư mục cài đặt)


Để cài đặt, bạn click phải chuột vào file “Install (Run as administrator).bat” và chọn menu “Run as administrator“. Nếu hệ thống hỏi bạn có đồng ý chạy không thì bạn nhận nút Yes hoặc OK để chạy. Sau khi cài đặt thành công, cửa sổ thông báo hiện ra như hình dưới, trong đó có 2 dòng “successfully” => đã thành công.

How%20to%20Install%20NetForVBA-successfully.png

(successfully = thành công!)
Bài đã được tự động gộp:

Thêm thư viện NetForVBA vào code VBA của bạn

Tại cửa sổ code VBA (Alt+F11), bạn chọn menu Tools => References… như hình trên. Ở cửa sổ “References – VBAProject” bạn tick chọn .Net Framework for VBA và nhấn OK để thêm thư viện cho Workbook/file hiện tại của bạn.

How%20to%20Use%20NetForVBA.png

Sau khi Add reference như trên, nếu bạn gõ đoạn code “Dim app As New dn” mà nhìn thấy gợi ý các Class bắt đầu với chữ “dn…” (VD: dnApp, dnAppExcel, …) như hình dưới có nghĩa là bạn đã có thể dùng thư viện Net ForVBA trong code VBA của mình.

How%20to%20Use%20NetForVBA-2.png

(Gợi ý code nhìn thấy “dn***” là đã add thành công! )
 
Lần chỉnh sửa cuối:
Upvote 0
không biết có gì xuất sắc trong đó hay không nữa ????
Úp vậy keo mò mệt chết đó !!!
Úp cho cái Video quay hết nhưng thứ có thể xài trong cái DLL đó đi xem chút
 
Upvote 0
không biết có gì xuất sắc trong đó hay không nữa ????
Úp vậy keo mò mệt chết đó !!!
Úp cho cái Video quay hết nhưng thứ có thể xài trong cái DLL đó đi xem chút

Cảm ơn anh! Em sẽ chuyển dần san Video cho được nhiều nội dung.

Thư viện NetForVBA có thể nói là clone lại các đối tượng thường dùng của .NET Framework để dùng trong VBA, do đó nó mang tính "Framework".
Các điểm đặc biệt em sẽ giới thiệu dần anh Mạnh nhé! :D
 
Upvote 0
Clone chứ không phải Wrapper hả?
 
Upvote 0
Thiết kế các control trên Form đều dùng code VBA hết phải không bạn? giống thiết kế web chứ không có kéo thả như Userform của Excel?
Tôi mới test thử mấy cái control datagridview, button...nhìn bắt mắt lắm.
 
Upvote 0
Clone chứ không phải Wrapper hả?

Bác dùng chuẩn thuật ngữ rồi đó! Em sợ dùng Wapper nhiều người không hiểu ngay nên dùng Clone cho quen :D
Bài đã được tự động gộp:

Thiết kế các control trên Form đều dùng code VBA hết phải không bạn? giống thiết kế web chứ không có kéo thả như Userform của Excel?
Tôi mới test thử mấy cái control datagridview, button...nhìn bắt mắt lắm.

Chuẩn bác! Phần kéo thả sau này em nghiên cứu tiếp :D
Bài đã được tự động gộp:

Hướng dẫn cơ bản về dnForm

dnForm
kế thừa từ Form (System.Windows.Forms.Form) trong .NET Framework.

dnForm.png

So với VBA UserForm thì dnForm có nhiều điểm mạnh kế thừa từ .NET như có sẵn icon, các nút minimum, maximum, thay đổi kích thước bằng kéo chuột, … và dnForm có thể chứa tất cả các control thông thường của .NET , đặc biệt là ListView, DataGridView, DateTimePicker, MonthCalendar, ToolStrip, ContextMenuStrip, WebBrowser… thông qua các đối tượng dn*** tương ứng (dnListView, …).

Để tạo mới một dnForm và hiển thị, trong VBE bạn code như sau:
Mã:
Dim frm As New dnForm
frm.Show

Thêm Button vào Form:
Mã:
frm.AddButton "btnOK", "OK", 100, 100 
frm.AddButton("btnCancel", "Cancel", 200, 100).DialogResult = dnDialogResult_Cancel

Với các Control cơ bản như Label, TextBox, Button, … thì các hàm Add đã được dựng sẵn tương ứng. Đối với các control khác bạn làm theo cách tổng quát theo ví dụ sau:
Mã:
'# add dnListView to dnForm 
Dim lv As New dnListView 
lv.View = dnListViewViews_Details 
lv.Gridlines = True 
lv.Columns.Add "colId", "Id", 50 
lv.Columns.Add "colName", "Name", 200 
lv.Columns.Add "colValue", "Value", 90 
frm.ControlAddAtRect lv, 8, 8, 300, 200 'Location:(8,8), Size:(300,200)


PS: em có đính kèm file Excel Demo về Form chứa ListView.
 

File đính kèm

  • ListView.xlsm
    ListView.xlsm
    20.6 KB · Đọc: 37
  • demo-listview-in-form.png
    demo-listview-in-form.png
    58.4 KB · Đọc: 49
Lần chỉnh sửa cuối:
Upvote 0
Gắn sự kiện của Form Control với Sub VBA

Để bắt được sự kiện của các Control trên Form và xử lý bằng code VBA bạn cần gắn sự kiện với sub/function VBA.

Trong NetForVBA cấu trúc đăng ký một Event của control như sau:

Mã:
control.regEvent_{eventName} ThisWorkbook, "macroName"

Trong đó {eventName} tùy theo control sẽ có giá trị khác nhau, macroName là tên sub/function macro sẽ nhận sự kiện.

Cấu trúc của sub/function nhận sự kiện phải có 2 parameters (dạng tổng quát là Object), ví dụ:

Mã:
Sub myControl_Click(sender As Object, e As Object)
   'do something
End Sub

Ví dụ về Timer:
Mã:
Sub Button1_Click()
    Dim timer As New dnTimer
    timer.Interval = 500 'ms
    timer.regEvent_Tick ThisWorkbook, "timer_Tick"
    timer.Start
End Sub
Sub timer_Tick(sender As Object, e As Object)
    ActiveCell.Value = app.Now.Millisecond
    If app.Now.Second = 0 Then sender.Stop ' sender is timer
End Sub
 
Upvote 0
macroName là tên sub/function macro sẽ nhận sự kiện
Nếu gọi được function thì có thể tạo được "hàm co giãn" không bạn?
Như ở chủ đề này:

Cấu trúc của sub/function nhận sự kiện phải có 2 parameters
Tại sao lại phải có 2 đối số? Không có hoặc có khác 2 được không bạn?
 
Upvote 0
Trước đây để viết hàm trả kết quả là mảng ta phải đau đầu tính toán, đếm số ô, Evlauate... rất phức tạp nhưng tới đây MS sẽ đơn giản hóa công thức mảng, không cần bấm CSE nữa, nếu UDF cứ đơn giản gán kết quả là mảng vẫn được.
 
Upvote 0
Nếu gọi được function thì có thể tạo được "hàm co giãn" không bạn?
Như ở chủ đề này:


Tại sao lại phải có 2 đối số? Không có hoặc có khác 2 được không bạn?

#1 Vụ hàm mảng thì em chưa tích hợp bác nhé
#2 Các Sub nhận Event từ Control được chuẩn hóa có 2 biến: biến thứ nhất sender chính là cái control có event, biến thứ hai e (EventArgs) chứa các tham số của sự kiện. VD: với sự kiện KeyDown thì e sẽ chứa các tham số như: nhấn phím gì? các phím Ctrl/Alt/Shift có nhấn không? ... Bác tham khảo KeyEventArgs ở đây.


PS: Đính kèm ví dụ bắt sự kiện KeyDown vào TextBox và chặn các phím không cần thiết. Cụ thể là chỉ cho nhập số vào TextBox.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Khá hay, nếu mở ra hơn nữa thì sẽ có lợi ích cho nhiều người lập trình VBA không chuyên
 
Upvote 0
ý mình hỏi giờ muốn gỡ ra luôn ý (Intal rồi giờ muốn Rmove thì seo)
 
Upvote 0
Người ta hay viết COM Delphi thì người ta khắc biết Register và UnRegister DLL .... có điều cứ giả vờ là sao ta ??!! :p :D
 
Upvote 0
Tính thử mà sao thấy thiên hạ sờ-ổ tờ-ây quá. Lạnh muón chết.

Nhắn với mấy vị muốn thử:

Mấy cái controls của đót nét chúng có hai phần:
- phần giao diện thìn quý vị chắc đã thấy rồi.
- phần kết nối với CSDL (đặc biệt là cái DataGridview, và mấy cái drill down combobox)
Muốn thử thì phải biết cách kết nối CSDL. Mấy cái OLE có hơi he-ri (xổ tây chơi)

Mấy cái tiện nghi (tools) của đót nét chúng có từ căn bản đến mấy cái lớp (class) đủ sức tranh với STL của C++
 
Lần chỉnh sửa cuối:
Upvote 0
Để trả về mảng thì
Người ta hay viết COM Delphi thì người ta khắc biết Register và UnRegister DLL .... có điều cứ giả vờ là sao ta ??!! :p :D
Theo mình nhớ không nhầm thì để đăng ký dll delphi thì dùng regsvr còn .NET thì dùng regasm. Hủy đăng ký thì thêm /u vào.
 
Upvote 0
Hiện lên cái About la em nghi lém...
Rồi gặp ngay Thánh soi luôn hihihi
hôm đó Mạnh cũng coi chút chút .... mà cũng làm biếng soi luôn ... tại ko mê lắm có chi ttự mò viết lấy xài dù tốt hay dở ẹc thì cũng là cái mình tự mò ( hay copy đâu đó tẹo viết thêm tẹo thì cũng thấy vui )
 
Upvote 0
:D đúng là toàn gặp các cao nhân có khác, soi hết resource của em rồi!

Lib của em phát triển theo mô hình Freemium các bác nhé (em không có nói free 100%), nghĩa là Free các tính năng cơ bản, chỉ thu phí các tính năng cao cấp.

Cụ thể hơn các tính năng cơ bản (và miễn phí mãi mãi) bao gồm các class/control phổ biến của .NET (Label, TexBox, ComboxBox, TreeView, ListView, DataGridView, Form, Dialog, WebBrowser,... các thư viện như DataOleDbConnection, Dictionary, RegEx, ClipBoard, WebClient, HtmlElement, Draw/Graphics, Security, ...) (nói chung tất cả những class, control đang có ở thời điểm hiện tại ngày 21/12/2019 là miễn phí mãi mãi, mọi người cứ dùng thoải mái ko phải lo em đòi tiền sau này :D).

Trong thời gian 1-3 ngày tới, em sẽ hoàn thiện thêm tính năng Lập trình mạng LAN và TaskPane để cung cấp cho mọi người miễn phí.

Em mong các các hiểu bản chất những việc em làm:
1. Đem các điểm mạnh của Microsoft .NET Framework về phục vụ cho VBA
2. Không miễn phí 100%
3. Miễn phí phần lớn: những cái cơ bản đều miễn phí (như hiện tại là 100% các tính năng đang có là miễn phí)
4. Em sẽ tính phí các tính năng chuyên biệt hơn (sau này mới có): như lập trình mạng Internet, giao tiếp real-time với Web, ...

PS: Em đã tắt luôn cửa sổ About để đỡ làm phiền người dùng. Các bác tải lại ở đây nhé: https://netforvba.com/Downloads
 
Lần chỉnh sửa cuối:
Upvote 0
Sao minh đã chạy file Cài đặt - Install (Run as administrator) rồi mà khi vào Refer thì không tìm thấy thư viện NetForVBA

P/s: Khi cài xong thì nó tự thoát luôn
 
Lần chỉnh sửa cuối:
Upvote 0
Sao minh đã chạy file Cài đặt - Install (Run as administrator) rồi mà khi vào Refer thì không tìm thấy thư viện NetForVBA

P/s: Khi cài xong thì nó tự thoát luôn

Bạn cần chạy dưới quyền Admin bằng cách click phải chuột và chọn menu Run as administrator .
 
Upvote 0
Như vậy là chưa cài được rồi.

Bác chuột phải vào cái file cài đặt đó, sau đó chọn menu "Edit" và thêm dòng Pause vào cuối. Lưu lại và chạy lại (với quyền admin) xem nó báo lỗi gì ạ

Install-bat-edit.png
 
Upvote 0
Bác dùng Office phiên bản bào nhiêu ạ?
 
Upvote 0
Theo báo lỗi thì có vẻ như máy bác thiếu file "Microsoft.Office.Interop.Excel.dll", em có đính kèm theo dưới đây.

Bác thử tải về: giải nén tại 1 trong 2 thư mục sau xem và cài lại xem có được không nhé:
#1. Thư mục cài đặt NetForVBA
#2. (Thư mục cài đặt office)\Office15\DCF (C:\Program Files (x86)\Microsoft Office\Office15\DCF\ hoặc C:\Program Files\Microsoft Office\Office15\DCF\ )

PS: Máy em vẫn chạy được trên Excel 2016 bình thường bác nhé!
 

File đính kèm

Upvote 0
Theo báo lỗi thì có vẻ như máy bác thiếu file "Microsoft.Office.Interop.Excel.dll", em có đính kèm theo dưới đây.

Bác thử tải về: giải nén tại 1 trong 2 thư mục sau xem và cài lại xem có được không nhé:
#1. Thư mục cài đặt NetForVBA
#2. (Thư mục cài đặt office)\Office15\DCF (C:\Program Files (x86)\Microsoft Office\Office15\DCF\ hoặc C:\Program Files\Microsoft Office\Office15\DCF\ )

PS: Máy em vẫn chạy được trên Excel 2016 bình thường bác nhé!
Mình copy thử lần lượt vào cả 2 thư mục và đăng ký lại nhưng vẫn không tìm thấy
Untitled.png
 
Upvote 0
Xin lỗi bác file trên em copy nhầm phiên bản excel. Bác thử lại với file dưới đây, vào các thư mục:
#1. Thư mục cài đặt NetForVBA
#2. (Thư mục cài đặt office)\Office16\DCF (C:\Program Files (x86)\Microsoft Office\Office16\DCF\ hoặc C:\Program Files\Microsoft Office\Office16\DCF\ )

Đường dẫn thư mục của bác em thấy có chữ root (C:\Program Files (x86)\Microsoft Office\root\Office16\DCF) không biết có được ko. Bác thử tạo đường dẫn không có chữ root xem sao. Không được nữa thì bác ném vào C:\Windows\System32 hoặc C:\Windows\SysWOW64 thử thế nào.

Nếu vẫn không được thì bác vào Control Panel để, chuột phải vào Office để Add or Remove Features xem có bị lược bỏ các thành phần hỗ trợ không.

Office-add-or-remove-features.png
 

File đính kèm

Upvote 0
The MIT License (MIT)

Copyright (c) 2007 James Newton-King

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Đọc kỹ lại cái bản quyền của NewtonSoft.JSON nhé bạn, bạn thấy bạn thiếu cái gì chưa ?
 
Upvote 0
Free thì free xác định ngay từ đầu, hoặc phải nói rõ: có 2 bản, bản free và bản shareware.
Cung cấp cho mọi người trên diễn đàn test thì cung cấp bản free, bỏ frmLicense và frmPurchase đi.
Không pack/protect = .NET Reactor, dễ bị các AV nhận diện là mèo.
Đã free và trong sáng thì không có gì phải protect assembly dll của mình cả. Shareware cũng vậy.
Sign assembly của mình đi.
Cả free hay shareware đều phải có file license .txt của MIT đi kèm.
Góp vài ngu ý vậy thôi, đừng giận, làm tốt đấy.
PS: Cố gắng giữ cho cái tâm trong sáng,đừng vì tiền, lợi nhuận mà gắn gì bậy bạ vào đấy. Bị soi, rờ ra hết đấy.
Cứ nhớ: trên đời, muốn người ta không biết thì đừng làm.
À sẵn đây nhắc mấy cậu nhóc choi choi hay những người mới học Delphi chưa tới đâu đã lo tập tành viết RAT, mèo rồi nhé. Down mấy cái code vớ vẫn trên mạng, Github về gắn vô chế tá lã cho chạy mà không có hiểu, quậy quá lung tung. Có ngày CA, C50 nó mò tới tận nhà mời đi uống trà, mặc áo Juventus miễn phí đấy.
 
Lần chỉnh sửa cuối:
Upvote 0
Sư phụ keo CA. C50 thì cũng có biết chút chút đấy ... nhưng sư phụ lo quá xa rồi đó và đó cũng là ý tốt nên Ghi nhận :D ;):D
 
Lần chỉnh sửa cuối:
Upvote 0
Free thì free xác định ngay từ đầu, hoặc phải nói rõ: có 2 bản, bản free và bản shareware.
Cung cấp cho mọi người trên diễn đàn test thì cung cấp bản free, bỏ frmLicense và frmPurchase đi.
Không pack/protect = .NET Reactor, dễ bị các AV nhận diện là mèo.
Đã free và trong sáng thì không có gì phải protect assembly dll của mình cả. Shareware cũng vậy.
Sign assembly của mình đi.
Cả free hay shareware đều phải có file license .txt của MIT đi kèm.
Góp vài ngu ý vậy thôi, đừng giận, làm tốt đấy.
PS: Cố gắng giữ cho cái tâm trong sáng,đừng vì tiền, lợi nhuận mà gắn gì bậy bạ vào đấy. Bị soi, rờ ra hết đấy.
Cứ nhớ: trên đời, muốn người ta không biết thì đừng làm.
À sẵn đây nhắc mấy cậu nhóc choi choi hay những người mới học Delphi chưa tới đâu đã lo tập tành viết RAT, mèo rồi nhé. Down mấy cái code vớ vẫn trên mạng, Github về gắn vô chế tá lã cho chạy mà không có hiểu, quậy quá lung tung. Có ngày CA, C50 nó mò tới tận nhà mời đi uống trà, mặc áo Juventus miễn phí đấy.

Cảm ơn bác ThangCuAnh đã xem xét và có những góp ý!

# Như trên em đã nhấn mạnh Lib của em không miễn phí. Em triển khai theo mô hình Freemium, tức là miễn phí tính năng cơ bản và thu phí tính năng cao cấp. Các phần mềm Skype, LinkedIn, Spotify, Candy Crush Saga cũng triển khai (một phần/hoặc toàn bộ) dạng Freemium.

# Trong mô hình này không tách làm 2 bản Free (hoặc demo, trial) và trả phí mà chỉ có 1 phiên bản chung. Giống như bác chơi game online thường là miễn phí, lúc nào cần thăng level nhanh hơn, nhàn hơn thì bỏ tiền vào mua đồ game vậy.

# Mục tiêu rõ ràng của em là tạo một sản phẩm phục vụ tốt cho số đông miễn phí và thêm vào những tính năng cao cấp hơn để hi vọng có người mua. Gắn code bẩn vào kiếm tiền sao được bác.

# Vì là sản phẩm sẽ dùng để kiếm tiền nên em có protect để giảm bớt rủi ro cạnh tranh không đáng có (tất nhiên em hiểu với những người chuyên nghiệp như bác thì protect bằng không).

Em rất mong nhận được thêm nhiều ý kiến đóng góp từ những người am hiểu như bác!
Cảm ơn bác ThangCuAnh ! :D
 
Lần chỉnh sửa cuối:
Upvote 0
Mọi người cho em hỏi, giờ tháo cái thư viện NetForVBA này thì làm sao ạ.
 
Upvote 0
Mọi người cho em hỏi, giờ tháo cái thư viện NetForVBA này thì làm sao ạ.
Hỏi khổ chủ của nó là được
Tôi thì không dùng đồ miễn phí 1 phần, bị khóa bị mã hóa, ai biết ẩn trong nó là những gì
Hoặc là dùng bản thương mại (ràng buộc khổ chủ), hoặc là bản mở hoàn toàn.
 
Upvote 0
Mọi người cho em hỏi, giờ tháo cái thư viện NetForVBA này thì làm sao ạ.

Em gửi bác file *.bat để gỡ cài đặt ạ. Bác tải phiên bản đầu nên chưa có file này, các phiên bản sau em đã bổ sung.
Bài đã được tự động gộp:
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Gửi các bác một ví dụ đơn giản về Form, giúp tạo bảng chọn ngày tháng ngay dưới Cell.

Các bước thực hiện gồm:
1. Tạo một dnForm mới, và ẩn form title, ẩn không cho hiện dưới TaskBar
Mã:
Dim picker As New dnForm
picker.FormBorderStyle = dnFormBorderStyle_None
picker.ShowInTaskbar = False

2. Thêm control dnMonthCalendar
Mã:
Dim mca As New dnMonthCalendar
mca.Name = "mca"
mca.regEvent_DateSelected ThisWorkbook, "date_DateSelected"
picker.AddControl mca, 0, 0

3. Hiển thị ngay dưới tọa độ của cell (dùng hàm app.CellPosition(cell) để lấy tọa độ cell) nếu cell có định dạng ngày

MonthCalendar.png


Để chạy được ví dụ này các bác cần tải lại thư viện nhé. http://netforvba.com/Downloads
 

File đính kèm

Upvote 0
Xin lỗi bác file trên em copy nhầm phiên bản excel. Bác thử lại với file dưới đây, vào các thư mục:
#1. Thư mục cài đặt NetForVBA
#2. (Thư mục cài đặt office)\Office16\DCF (C:\Program Files (x86)\Microsoft Office\Office16\DCF\ hoặc C:\Program Files\Microsoft Office\Office16\DCF\ )

Đường dẫn thư mục của bác em thấy có chữ root (C:\Program Files (x86)\Microsoft Office\root\Office16\DCF) không biết có được ko. Bác thử tạo đường dẫn không có chữ root xem sao. Không được nữa thì bác ném vào C:\Windows\System32 hoặc C:\Windows\SysWOW64 thử thế nào.

Nếu vẫn không được thì bác vào Control Panel để, chuột phải vào Office để Add or Remove Features xem có bị lược bỏ các thành phần hỗ trợ không.

Office-add-or-remove-features.png
Mình đã làm hết các cách theo hướng dẫn của bạn nhưng vẫn không được

1577167868778.png
 
Upvote 0
Sao mình tháo không được bạn ơi, bạn chỉ mình cặn kẻ một tí.
Mình làm nó hiện vầy nè
Net.png
 
Upvote 0

File đính kèm

Upvote 0
Copy file gỡ cài đặt vào trong cái folder "NetForVBA" (cái folder nào chứa cái NetForVBA.DLL) đấy rồi chạy thôi.
Mình tìm không thấy có NetForVBA trong PC, nhưng trong Reference của Excel lại có:
NetForVBA.png
Bài đã được tự động gộp:

Bác thử lại với file gỡ cài đặt em gửi sau có được không nhé!
Mình tải và chạy cũng không được.
 
Upvote 0
Upvote 0
Nó trong C:\Users\DMQ\Downloads\NetForVBA\NetForVBA.tlb
Mình đã xóa trong Downloads luôn rồi mà vẫn còn.
 
Upvote 0
Mình đã đưa vào Downloads và chạy gỡ cài đặt vẫn không xóa được.
Hinh1.png
 
Upvote 0
Mình đã đưa vào Downloads và chạy gỡ cài đặt vẫn không xóa được.
View attachment 230456

Bác tải lại cho có đầy đủ thư mục NetForVBA và các file bên trong.
Bằng cách tải lại file ZIP cài đặt https://netforvba.com/NetForVBA.zip vào thư mục Downloads của bác.
Sau đó giải nén bác sẽ có đúng thư mục: C:\Users\DMQ\Downloads\NetForVBA\ và các file bên trong.
Bác vào thư mục NetForVBA đó, click phải chuột vào file "Gỡ cài đặt - Uninstall" và chọn "Run as administrator".

Bác thử xem có được không ạ.
 
Upvote 0
Mình làm đúng các bước của bạn: 1/đã có thư mục NetForVBA trong Downloads
1/1.png
2 mở thư mục NetForVBA-> phải chuột vào gỡ cài đặt..->Run as Admin
2.png
3/Nhưng lại chưa được
3.png
 
Upvote 0
Mình làm đúng các bước của bạn: 1/đã có thư mục NetForVBA trong Downloads
1/View attachment 230457
2 mở thư mục NetForVBA-> phải chuột vào gỡ cài đặt..->Run as Admin
View attachment 230458
3/Nhưng lại chưa được
View attachment 230459

Em test thì khi thư mục lúc cài đặt mà khác với thư mục lúc gỡ cài đặt thì nó sẽ ra thông báo lỗi này.
Bác xem lại trong References của Excel xem có nhầm lẫn gì không ạ.

VD: có thể bác giải nén ra C:\Users\DMQ\Downloads\NetForVBA\NetForVBA\
 
Upvote 0
nó nằm trong thư mục Downloads mà.
Bài đã được tự động gộp:

Thôi xóa không được thì đành "Sống chung với lũ" vậy.
 
Lần chỉnh sửa cuối:
Upvote 0
Lúc cài thì nó hiện trong references của Excel đó (mà bạn nói là nó hiện trong references là cài được),còn dùng thì chưa (không biết dùng)
 
Upvote 0
Lúc cài thì nó hiện trong references của Excel đó (mà bạn nói là nó hiện trong references là cài được),còn dùng thì chưa (không biết dùng)

Em có up các file Excel ví dụ, chạy ầm ầm sao bác không thử. Tải file mẫu về, mở lên xem nó chạy làm sao, sau đó tìm hiểu code sau ạ
 
Upvote 0
lỗi cài đặt làm sao để fix nó đây bác ơi
 
Upvote 0
Website bị tử rồi. Có vẻ chủ Topic đã xóa nó !
 
Upvote 0
Anh tác giả có update không ạ
thư viện hay quá mà giờ web không vào được nữa rồi
bản cài của a dùng cho office 64bit không vấn đề gì, cài cho office 32bit bị lỗi thôi. chắc có lẽ bản cài chưa hỗ trợ 32 bit
 
Upvote 0
Quá nhiều lỗi từ người dùng. Bản thân tôi cũng không cài được thư viện này, lỗi tương tự như của bạn huuduy.duy. Khả năng phố biến là hơi khó nếu chưa test lỗi đầy đủ.
 
Upvote 0

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

Back
Top Bottom