Hướng dẫn can i use javascript to automate excel? - tôi có thể sử dụng javascript để tự động hóa excel không?

Các vấn đề với VBA

Visual Basic cho các ứng dụng [VBA] đã được tạo vào những năm 90 và thực tế chưa bao giờ thay đổi kể từ đó. Ngoài môi trường phát triển hoàn toàn lỗi thời và cú pháp độc đáo, VBA còn đặt ra một mối đe dọa lớn đối với các tập đoàn như một công cụ có hiệu quả cao đối với phần mềm độc hại do khả năng truy cập các quy trình hệ điều hành cốt lõi.

Vâng, VBA có điểm mạnh của mình và cá nhân tôi biết những người đã kiếm được hàng triệu đô la vì mã VBA chất lượng. Tuy nhiên, có một cách thú vị nhanh hơn, an toàn hơn và thẳng thắn hơn để tự động hóa Excel: Nói xin chào với Adv-in Excel Môi trường phát triển tự động hóa JavaScript [JADE].

Ngọc là gì?

Jade cung cấp cho bạn sức mạnh để sử dụng JavaScript để tự động hóa mọi thứ trong phạm vi sổ làm việc của Excel mà không làm cho nó được bật macro.

Bởi vì JavaScript bạn viết đang sống trong trình duyệt, nó không có quyền truy cập vào bất kỳ tính năng hệ điều hành nào trên máy tính chủ. Điều này có nghĩa là tất cả mã tự động hóa của bạn được giới hạn trong sổ làm việc của bạn, làm cho nó cực kỳ an toàn để chia sẻ.

Jade cung cấp một môi trường cho phép nhà phát triển viết JavaScript trực tiếp vào sổ làm việc và thậm chí nó có thể kéo các mô -đun mã từ đám mây bằng GitHub Giists.

Một bản demo ngắn

Hãy để nhanh chóng trình bày cách sử dụng JavaScript trong Excel để tự động hóa việc đặt dấu thời gian.

Đầu tiên, bạn sẽ cần thêm bổ trợ vào sổ làm việc Excel của bạn. Hướng dẫn về cách làm như vậy có thể được tìm thấy ở đây.

Khi bạn có phần bổ trợ và chạy, chọn Thêm mô-đun mã

Chọn “Thêm một mô -đun mã

Nhập tên của mô -đun; Trong ví dụ dưới đây, tên là Demo Demo.

Đặt tên cho mô -đun demo demo

Điều này sẽ tạo bộ chỉnh sửa mã bên dưới. Bạn có thể muốn thay đổi kích thước nó để phù hợp với màn hình của bạn tốt hơn.

Đơn giản chỉ cần viết, lưu và chạy JavaScript trong Excel!

Bạn sẽ nhận thấy rằng write_timestamp hiện đang được hiển thị trong bộ chọn thả xuống tên chức năng. Nhấp vào nút Run Run để thực hiện chức năng và ghi ngày và giờ hiện tại vào ô hoạt động.

Bạn cũng có thể thay đổi dấu thời gian thành văn bản!

Jade cũng đi kèm với các thông báo lỗi tiện dụng cho bạn biết vấn đề và nơi để khắc phục nó. Nếu bạn đã quên dấu ngoặc kép kết thúc, bạn sẽ thấy như sau:

Chạy tập lệnh của bạn cũng lưu nó. Nếu bạn muốn lưu mà không cần chạy, bạn có thể nhấp vào nút Lưu Lưu. Bạn có thể đóng lại và mở lại sách bài tập của mình một cách an toàn. Bạn thậm chí có thể gửi một bản sao của sổ làm việc cho người khác và họ có thể chạy mã bạn đã viết!

Điều này hoàn thành bản demo. Bạn có thể bắt đầu sử dụng Jade miễn phí bằng cách lấy nó từ App Store bổ trợ Microsoft.

Nhiêu tai nguyên hơn

Hướng dẫn đầy đủ Jade

Trang hỗ trợ Jade: //support.jsvba.com/

Tổng quan về API JavaScript: //docs.microsoft.com/en-us/office/dev/add-ins/reference/overview/excel-add-ins-reference-overview

Bỏ qua nội dung chính

Trình duyệt này không còn được hỗ trợ.

Nâng cấp lên Microsoft Edge để tận dụng các tính năng mới nhất, cập nhật bảo mật và hỗ trợ kỹ thuật.

Cách tự động hóa Excel từ trang web HTML bằng cách sử dụng JScript

  • Bài báo
  • 22/10/2021
  • 3 phút để đọc
  • Áp dụng cho: Microsoft Excel

Trong bài viết này

Bản tóm tắt

Bài viết này trình bày cách tạo và điều khiển một cuốn sách bài tập Microsoft Office Excel từ một trang HTML.

Thêm thông tin

Bài viết này minh họa mã JScript tự động hóa Excel. JScript không có phương tiện nội bộ để tạo an toàn. Khi sử dụng tự động hóa, nếu bạn gọi một chức năng yêu cầu SafeArray, bạn có thể sử dụng VBScript để tạo SafeArray. Mã dưới đây cho thấy sự kết hợp của mã JScript và VBScript này.

Xây dựng mẫu tự động hóa

  1. Bắt đầu notepad.

  2. Dán mã sau vào notepad.

    
    
    Press the button to start Excel and display quarterly data.
    
    Function CreateNamesArray[]
    ' Create an array to set multiple values at once.
      Dim saNames[5, 2]
      saNames[0, 0] = "John"
    
    saNames[0, 1] = "Smith"
      saNames[1, 0] = "Tom"
      saNames[1, 1] = "Brown"
      saNames[2, 0] = "Sue"
      saNames[2, 1] = "Thomas"
      saNames[3, 0] = "Jane"
      saNames[3, 1] = "Jones"
      saNames[4, 0] = "Adam"
      saNames[4, 1] = "Johnson"
      CreateNamesArray = saNames
    End Function
    
    
     
    function AutomateExcel[]
    {
    
    // Start Excel and get Application object.
          var oXL = new ActiveXObject["Excel.Application"];
    
    oXL.Visible = true;
    
    // Get a new workbook.
          var oWB = oXL.Workbooks.Add[];
          var oSheet = oWB.ActiveSheet;
    
    // Add table headers going cell by cell.
          oSheet.Cells[1, 1].Value = "First Name";
          oSheet.Cells[1, 2].Value = "Last Name";
          oSheet.Cells[1, 3].Value = "Full Name";
          oSheet.Cells[1, 4].Value = "Salary";
    
    // Format A1:D1 as bold, vertical alignment = center.
          oSheet.Range["A1", "D1"].Font.Bold = true;
          oSheet.Range["A1", "D1"].VerticalAlignment =  -4108; //xlVAlignCenter
    
    // Create an array to set multiple values at once.
    
    // Fill A2:B6 with an array of values [from VBScript].
          oSheet.Range["A2", "B6"].Value = CreateNamesArray[];
    
    // Fill C2:C6 with a relative formula [=A2 & " " & B2].
          var oRng = oSheet.Range["C2", "C6"];
          oRng.Formula = "=A2 & \" \" & B2";
    
    // Fill D2:D6 with a formula[=RAND[]*100000] and apply format.
          oRng = oSheet.Range["D2", "D6"];
          oRng.Formula = "=RAND[]*100000";
          oRng.NumberFormat = "$0.00";
    
    // AutoFit columns A:D.
          oRng = oSheet.Range["A1", "D1"];
          oRng.EntireColumn.AutoFit[];
    
    // Manipulate a variable number of columns for Quarterly Sales Data.
          DispalyQuarterlySales[oSheet];
    
    // Make sure Excel is visible and give the user control
       // of Excel's lifetime.
          oXL.Visible = true;
          oXL.UserControl = true;
    }
    
    function DispalyQuarterlySales[oWS]
    {
          var iNumQtrs, sMsg, iRet;
    
    // Number of quarters to display data for.
          iNumQtrs = 4;
    
    // Starting at E1, fill headers for the number of columns selected.
          var oResizeRange = oWS.Range["E1", "E1"].Resize[1,iNumQtrs];
          oResizeRange.Formula = "=\"Q\" & COLUMN[]-4 & CHAR[10] & \"Sales\"";
    
    // Change the Orientation and WrapText properties for the headers.
          oResizeRange.Orientation = 38;
          oResizeRange.WrapText = true;
    
    // Fill the interior color of the headers.
          oResizeRange.Interior.ColorIndex = 36;
    
    // Fill the columns with a formula and apply a number format.
          oResizeRange = oWS.Range["E2", "E6"].Resize[5,iNumQtrs];
          oResizeRange.Formula = "=RAND[]*100";
          oResizeRange.NumberFormat = "$0.00";
    
    // Apply borders to the Sales data and headers.
          oResizeRange = oWS.Range["E1", "E6"].Resize[6,iNumQtrs];
          oResizeRange.Borders.Weight = 2;  // xlThin
    
    // Add a Totals formula for the sales data and apply a border.
          oResizeRange = oWS.Range["E8", "E8"].Resize[1,iNumQtrs];
          oResizeRange.Formula = "=SUM[E2:E6]";
        // 9 = xlEdgeBottom      
          oResizeRange.Borders[9].LineStyle = -4119; //xlDouble
          oResizeRange.Borders[9].Weight = 4; //xlThick
    
    // Add a Chart for the selected data.
    
    oResizeRange = oWS.Range["E2:E6"].Resize[5,iNumQtrs];
          var oChart = oWS.Parent.Charts.Add[];
          oChart.ChartWizard[oResizeRange, -4100, null, 2];  // -4100 = xl3dColumn
          oChart.SeriesCollection[1].XValues = oWS.Range["A2", "A6"];
          for [iRet = 1; iRet 

Bài Viết Liên Quan

Chủ Đề