Có thể chạy macro Excel trong trình duyệt không?

Excel là một chương trình "Nhận biết web", nghĩa là nó biết cách xử lý các siêu liên kết. Bạn có thể thêm một siêu kết nối trong tài liệu, nhấp vào liên kết đó và Excel sẽ mở trình duyệt Web của bạn và hiển thị nội dung của liên kết đó trong trình duyệt. [Bạn cũng có thể tạo siêu kết nối đến các tài liệu Office khác, bao gồm sổ làm việc Excel. ] Bạn thậm chí có thể tạo siêu kết nối đến các đối tượng khác nhau trên trang tính của mình, chẳng hạn như nút lệnh trong biểu mẫu

Tuy nhiên, nếu bạn muốn khởi động trình duyệt và mở tệp HTML từ bên trong macro VBA thì sao? . Đầu tiên là chỉ cần mở một đối tượng Internet Explorer mới trong mã của bạn. Một macro để làm điều này sẽ xuất hiện như sau

Sub DoBrowse1[]
    Dim ie As Object
    Set ie = CreateObject["Internetexplorer.Application"]
    ie.Visible = True
    ie.Navigate "c:\temp\MyHTMLfile.htm"
End Sub

Macro này sẽ mở tệp c. \temp\MyHTMLfile. htm trong cửa sổ Internet Explorer mới. Thay vào đó, nếu bạn muốn mở một trang Web từ Internet, bạn có thể thực hiện việc đó đơn giản bằng cách thay đổi nơi bạn muốn điều hướng. [Thay thế đường dẫn tệp bằng URL. ]

Một cách khác để hoàn thành nhiệm vụ tương tự là dựa vào Excel để tìm ra trình duyệt mặc định của bạn là gì và mở tài nguyên HTML. Macro sau thực hiện thủ thuật

Sub DoBrowse2[]
    ActiveWorkbook.FollowHyperlink _
      Address:="c:\temp\MyHTMLfile.htm", _
      NewWindow:=True
End Sub

Một lần nữa, trình duyệt sẽ mở một cửa sổ mới và hiển thị tệp đã chỉ định. Bạn có thể thay đổi tham số Địa chỉ thành bất kỳ URL nào bạn muốn

Có thể chạy macro trên trình duyệt web không? . Ngoài ra, làm cách nào để tôi kích hoạt nó tự động trong trình duyệt?

Giải pháp tốt nhất

Nếu tôi đúng khi cho rằng bạn đang hỏi liệu macro vba có thể tự động chạy sau khi mở macro đó từ một liên kết trên trang web do trình duyệt hiển thị hay không, thì cách tốt nhất để làm điều đó là đặt mã chạy tự động bất cứ khi nào sổ làm việc được liên kết

Để chạy macro khi sổ làm việc được mở, hãy nhấp đúp vào đối tượng "ThisWorkbook" trong trình khám phá dự án vba của sổ làm việc có mã của bạn và thêm các dòng mã này

Private Sub Workbook_Open[]
Call Module1.hello 'Change this line to start your code
End Sub

Điều này sẽ tự động thực thi phần phụ "xin chào" trong Mô-đun 1 của sổ làm việc

Lưu ý rằng người dùng phải bật Macro trong Cài đặt Trung tâm tin cậy của họ để mọi thứ chạy

Cũng lưu ý rằng tùy thuộc vào trình duyệt của họ và vị trí liên kết thực tế trỏ đến tệp sổ làm việc có thể phải được tải xuống trước rồi mới mở từ vị trí tải xuống để chạy macro

Giải pháp liên quan

C# – Cách tạo một Excel [. XLS và. XLSX] trong C# mà không cần cài đặt Microsoft Office

Bạn có thể sử dụng thư viện có tên ExcelLibrary. Đó là một thư viện mã nguồn mở miễn phí được đăng trên Google Code

Thư viện Excel

Đây có vẻ là một cổng của PHP ExcelWriter mà bạn đã đề cập ở trên. Nó sẽ không ghi vào cái mới. xlsx, nhưng họ đang làm việc để thêm chức năng đó vào

Nó rất đơn giản, nhỏ và dễ sử dụng. Ngoài ra, nó còn có DataSetHelper cho phép bạn sử dụng DataSets và DataTables để dễ dàng làm việc với dữ liệu Excel

ExcelLibrary dường như vẫn chỉ hoạt động đối với định dạng Excel cũ hơn [. xls], nhưng có thể bổ sung hỗ trợ trong tương lai cho các định dạng 2007/2010 mới hơn

Bạn cũng có thể sử dụng EPPlus, chỉ hoạt động với các tệp định dạng Excel 2007/2010 [. tệp xlsx]. Ngoài ra còn có NPOI hoạt động với cả hai

Có một vài lỗi đã biết với mỗi thư viện như đã lưu ý trong các nhận xét. Nói chung, EPPlus dường như là lựa chọn tốt nhất theo thời gian. Nó dường như cũng được cập nhật và ghi lại tích cực hơn

Ngoài ra, như được lưu ý bởi @АртёмЦарионов bên dưới, EPPlus có hỗ trợ cho Pivot Tables và ExcelLibrary có thể có một số hỗ trợ [Sự cố bảng Pivot trong ExcelLibrary]

Dưới đây là một vài liên kết để tham khảo nhanh
Thư viện Excel - GNU GPL nhỏ hơn
EPPlus -
EPPlus 5 - Polyform Phi thương mại - Bắt đầu từ tháng 5 năm 2020
NPOI - Giấy phép Apache

Dưới đây là một số mã ví dụ cho ExcelLibrary

Dưới đây là một ví dụ lấy dữ liệu từ cơ sở dữ liệu và tạo sổ làm việc từ đó. Lưu ý rằng mã Thư viện Excel là một dòng ở dưới cùng

//Create the data set and table
DataSet ds = new DataSet["New_DataSet"];
DataTable dt = new DataTable["New_DataTable"];

//Set the locale for each
ds.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;
dt.Locale = System.Threading.Thread.CurrentThread.CurrentCulture;

//Open a DB connection [in this example with OleDB]
OleDbConnection con = new OleDbConnection[dbConnectionString];
con.Open[];

//Create a query and fill the data table with the data from the DB
string sql = "SELECT Whatever FROM MyDBTable;";
OleDbCommand cmd = new OleDbCommand[sql, con];
OleDbDataAdapter adptr = new OleDbDataAdapter[];

adptr.SelectCommand = cmd;
adptr.Fill[dt];
con.Close[];

//Add the table to the data set
ds.Tables.Add[dt];

//Here's the easy part. Create the Excel worksheet from the data set
ExcelLibrary.DataSetHelper.CreateWorkbook["MyExcelFile.xls", ds];

Tạo tệp Excel dễ dàng như vậy. Bạn cũng có thể tạo các tệp Excel theo cách thủ công, nhưng chức năng trên mới là thứ thực sự gây ấn tượng với tôi

Excel – Ngăn Excel tự động chuyển đổi một số giá trị văn bản thành ngày tháng

Tôi nhận thấy rằng việc đặt dấu '=' trước dấu ngoặc kép sẽ thực hiện được những gì bạn muốn. Nó buộc dữ liệu phải là văn bản

ví dụ. ="2008-10-03",="thêm văn bản"

CHỈNH SỬA [theo bài viết khác]. do lỗi Excel 2007 do Jeffiekins lưu ý nên sử dụng giải pháp do Andrew đề xuất. "=""2008-10-03"""

Macro Excel có thể chạy bên ngoài Excel không?

Quy trình macro của bạn có thể mở rộng sang các ứng dụng Office khác và bất kỳ ứng dụng nào khác hỗ trợ Ứng dụng Visual Basic [VBA] . Ví dụ: bạn có thể ghi lại một macro trong đó lần đầu tiên bạn cập nhật bảng trong Excel, rồi mở Outlook để gửi email bảng tới một địa chỉ email.

Macro Excel có thể lấy dữ liệu từ một trang web không?

VBA mở rộng khả năng của các công cụ Microsoft Office và cho phép người dùng phát triển các chức năng nâng cao và tự động hóa phức tạp. VBA cũng có thể được sử dụng để viết macro nhằm kéo dữ liệu từ trang web vào Excel .

Làm thế nào để chạy VBA trực tuyến?

Cách sử dụng mã VBA mà bạn tìm thấy trực tuyến .
Bước 1. Bật tab Nhà phát triển trong Dải băng
Bước 2. Mở trình chỉnh sửa trực quan cơ bản
Bước 3. Chèn một mô-đun vào sổ làm việc hiện tại
Bước 4. Chạy mã của bạn
Ghi chú. Để lưu sổ làm việc của bạn

Chủ Đề