Gán giá trị cho biến trong excel

     

Giới thiệu

Bài viết này biểu lộ cách áp dụng biến số bdkhtravinh.vn Excel thủ tục con trong bdkhtravinh.vn Visual Basic for Applications.

Bạn đang xem: Gán giá trị cho biến trong excel

Các trở nên trong một thủ tục con

Một tính năng trẻ trung và tràn trề sức khỏe của ngôn từ lập trình là tài năng lưu trữ thông tin gì đấy trong một đổi thay để hoàn toàn có thể sử dụng câu chữ của đổi thay hoặc rất có thể được biến đổi sau đó trong quy trình. Tài liệu này đàm đạo về việc sử dụng các biến số tiếp sau đây trong Visual Basic:

Cách khai báo các biến.

Các giấy tờ thủ tục và dự án hoàn toàn có thể sử dụng trở nên số.

Tuổi lâu của thay đổi số.

Khai báo biến hóa trong macro

Cách đơn giản nhất để khai báo trở thành trong macro là sử dụng câu lệnh Dim. Dòng dưới đây khai báo hai biến chuyển số, là số nguyên:

Dim x As Integer, y As Integer

Với x và y được khẳng định là số nguyên, bạn đang yêu thương cầu Visual Basic dành đủ bộ nhớ cho biến chuyển số nguyên (2 byte cho mỗi số x với y) và thông tin được tàng trữ trong hoặc x hoặc y là một số trong những nguyên trong khoảng từ -32768 mang đến 32767.LƯU Ý: nếu như bạn khai báo những biến bằng phương pháp dùng một câu lệnh Dim duy nhất, chúng ta phải xác minh kiểu dữ liệu cho từng biến.Nếu bạn không xác minh kiểu dữ liệu cho từng biến, như trong mã Visual Basic sau, chỉ gồm biến y được cấu hình thiết lập làm phát triển thành số nguyên. Biến chuyển x sẽ là 1 trong loại trở nên thể:

Dim x, y As Integer

Để hiểu thêm thông tin, hãy coi mục Kiểu tài liệu biến thể dưới đây. 

Để thực hiện kiểm tra trở nên số, hãy có tác dụng theo các bước sau:

Lưu với đóng ngẫu nhiên sổ thao tác nào đang mở, rồi mở một sổ thao tác làm việc mới.

Bắt đầu Trình Visual Basic Thảo (nhấn ALT+F11).

Trên menu Chèn, nhấn vào Mô-đun.

Nhập mã sau đây: Sub Variable_Test() Dim x As Integer, y As Integer x = 10 y = 100 MsgBox "giá trị của x là " & x và _ Chr(13) & "giá trị y là " & y end Sub

Chạy macro Variable_Test trang. Bạn nhận được thông tin sau đây: the value of x is 10the value of y is 100

Bấm vào OK.

Trong vỏ hộp Variable_Test macro, biến hóa dòng sau đây: x = 10

thành: x = "error"

Chạy macro Variable_Test trang.

Bạn sẽ gặp mặt lỗi thời gian chạy vì "lỗi" không phải là số nguyên và bạn đang tìm biện pháp gán giá trị chuỗi này cho trở thành số nguyên x. 

cầm tắt kiểu tài liệu

Đây là các kiểu tài liệu biến hay gặp:

*

Loại dữ liệu biến

Nếu các bạn không khẳng định kiểu tài liệu khi khai báo biến đổi hoặc các bạn không khai báo phát triển thành số, thì Visual Basic sẽ auto xác định kiểu tài liệu biến cho biến hóa số này. Sau đó là những ưu điểm của biến đổi số được khai báo là kiểu dữ liệu này:

Các biến hóa số hoàn toàn có thể chứa các giá trị chuỗi, ngày, thời gian, Boolean hoặc số.

Các biến chuyển số có thể thay đổi giá trị nhưng mà chúng tự động chứa.

Nhược điểm là trở nên số biến hóa thể yêu cầu tối thiểu 16 byte bộ nhớ. 16 byte bộ nhớ có thể đáng kể trong các thủ tục phệ hoặc trong mô-đun phức tạp.Để coi cách buổi giao lưu của macro Variable_Test, hãy làm theo quá trình sau:

Thay đổi mã vào macro Variable_Test macro thành:

Sub Variable_Test() Dim x, y x = "string" y = 1.23 MsgBox "the value of x is " & x và _ Chr(13) & "the value of y is " & yEnd Sub

Chạy macro Variable_Test trang.

Bạn sẽ không nhận được lỗi vì chúng ta cũng có thể gán bất cứ giá trị nào cho những biến đổi thay thể x với y.LƯU Ý: bạn cũng có thể bỏ qua dòng tiếp sau đây và macro đang vẫn vận động như những biến x cùng y được coi là kiểu dữ liệu Variant:

Dim x, y

Phạm vi thay đổi số

Khi bạn khai báo biến số, các macro khác trong cùng mô-đun hoặc trong số dự án khác hoàn toàn có thể nhìn thấy hoặc không nhìn thấy biến đó. Sự sẵn sàng chuẩn bị của trở nên số trong mô-đun được gọi là phạm vi. Bố loại phạm vi là mức thủ tục, nút mô-đun riêng và mức mô-đun công cộng. Phạm vi này nhờ vào vào phương pháp và vị trí các bạn khai báo biến chuyển số hoặc biến hóa số của mình.

Phạm vi mức thủ tục

Biến số cùng với phạm vi mức giấy tờ thủ tục không nhìn thấy phía bên ngoài thủ tục ở chỗ nó được khai báo. Nếu bạn đặt quý giá của biến hóa số gồm phạm vi nút thủ tục, thì các macro khác sẽ không nhìn thấy câu chữ của đổi mới đó.Để xác nhận rằng không bắt gặp biến vào phạm vi nút thủ tục bên phía ngoài thủ tục khai báo, hãy có tác dụng theo các bước sau:

Chèn mô-đun new vào dự án công trình của bạn.

Nhập cả nhị macro sau vào mô-đun này: Macro Phụ 1() Dim x As Integer x = 10 MsgBox "x, as seen by Macro1 is " & x "the next line runs Macro2 Macro2 end Sub Macro2() MsgBox "x, as seen by Macro2 is " và x kết thúc Sub

Chạy Macro1, rồi bạn sẽ nhận được thông tin sau: x, as seen by Macro1 is 10

Bấm vào OK, bạn sẽ nhận được thông tin sau: x, as seen by Macro2 is

Bấm vào OK.

Macro2 không hiển thị giá trị cho vươn lên là x vì thay đổi x toàn thể trong Macro1.

Phạm vi nút mô-đun chỗ đông người và riêng tứ

Bạn rất có thể xác định những biến vào phần khai báo của mô-đun (ở đầu mô-đun, trên thuộc của toàn bộ các giấy tờ thủ tục con) cùng đặt phạm vi đổi thay của bạn bằng cách sử dụng Câu lệnh công khai, câu lệnh Dim hoặc câu lệnh Private. Nếu khách hàng đưa câu lệnh Public trước vươn lên là số của bạn, trở nên số của bạn sẽ sẵn sử dụng cho toàn bộ macro trong toàn bộ các mô-đun vào dự án. Nếu như bạn đưa câu lệnh Dim hoặc câu lệnh Private trước đổi mới của bạn, thì thay đổi số của khách hàng chỉ sẵn cần sử dụng cho macro trong mô-đun nơi nó được khai báo.Để thấy sự khác hoàn toàn giữa câu lệnh công khai minh bạch và câu lệnh Mờ, hãy làm cho theo quá trình sau:

Lưu với đóng ngẫu nhiên sổ làm việc nào đã mở, rồi mở một sổ thao tác làm việc mới.

Khởi rượu cồn Trình Visual Basic Thảo Tài chính.

Chèn mô-đun vào dự án của bạn.

Xem thêm: Tìm Hiểu Về Sơ Đồ Mạch Điện Điều Hòa Inverter 1 Chiều Và 2 Chiều

Type the following code into this module:Public x As IntegerSub Macro_1a() x = 10 MsgBox x Macro_1bEnd SubSub Macro_1b() x = x * 2 MsgBox x Macro2End Sub Chèn mô-đun khác vào dự án của bạn.

Nhập mã dưới đây vào mô-đun này:

Sub Macro2() x = x * 3 MsgBox x end Sub

Chạy macro Macro_1a trong mô-đun đầu tiên.

Với đổi mới x được khai báo là "Công cùng x là Số nguyên", cả bố macro trong dự án đều phải sở hữu quyền truy tìm nhập vào quý hiếm x. Vỏ hộp thông báo đầu tiên sẽ hiển thị giá trị là 10. Hộp thông báo thứ nhị hiển thị quý giá là trăng tròn (vì x được nhân cùng với 2 trong Macro_1b). Hộp thông báo thứ ba hiển thị quý hiếm 60 (vì giá trị x đã được biến hóa thành trăng tròn trong Macro_1b và tiếp đến nó được nhân với 3 trong Macro2).

Thay đổi chiếc khai báo vào mô-đun thứ nhất từ: Public x As Integerthành: Dim x As Integer

Chạy macro Macro_1a trang.

Với biến hóa x được khai báo là "Dim x As Integer", chỉ có macro vào mô-đun đầu tiên có quyền truy nã nhập vào giá trị x. Vày vậy, vỏ hộp thông báo đầu tiên sẽ hiển thị quý giá là 10, hộp thông báo thứ hai sẽ hiển thị quý hiếm là 20, (vì x được nhân với 2 vào Macro_1b) với hộp thông tin thứ tía hiển thị quý giá là 0 (vì Macro2 không nhìn thấy giá trị x và giá trị không ko được thực hiện bởi Macro 2).

Thay đổi mẫu khai báo vào mô-đun thứ nhất từ: Dim x As Integerthành: Private x As Integer

Chạy macro Macro_1a trang.

Các hộp thư tương đương nhau được hiển thị bằng cách sử dụng phạm vi Câu lệnh riêng tứ như khi chúng sử dụng câu lệnh Dim. Phát triển thành x gồm cùng một phạm vi, nằm riêng vào mô-đun địa điểm nó được khai báo.

LƯU Ý: Nếu bạn có nhu cầu giới hạn phạm vi biến của bản thân trong mô-đun mà biến chuyển được khai báo, hãy áp dụng Privatestatement rứa cho câu lệnh Dim. Cả hai đều đạt được hiệu ứng giống như nhau nhưng mà phạm vi sẽ rõ ràng hơn khi chúng ta đọc mã nếu như bạn sử dụng câu lệnh riêng biệt tư. 

Thời hạn của phát triển thành số

Thời gian trong khi biến số giữ gìn giá trị của nó được điện thoại tư vấn là tuổi thọ của nó. Quý hiếm của một biến đổi số gồm thể đổi khác trong toàn thời gian của vươn lên là nhưng vẫn giữ lại một giá bán trị. Không tính ra, lúc một biến mất phạm vi, nó không còn có một giá chỉ trị. 

Khởi sinh sản giá trị của biến đổi số

Khi bạn chạy macro, toàn bộ các biến đổi số được khởi tạo ra thành một giá trị. đổi mới số được khởi sản xuất thành không, một chuỗi độ dài thay đổi được khởi sinh sản thành chuỗi bao gồm độ dài bởi 0 ("") và một chuỗi bao gồm độ dài cố định sẽ được điền bởi mã ASCII 0. Vươn lên là biến thể được khởi tạo thành thành Trống. Biến đổi Trống được thể hiện bằng số 0 trong văn cảnh số với chuỗi độ dài bởi 0 ("") trong văn cảnh chuỗi.

trở thành mức giấy tờ thủ tục

Nếu các bạn có một biến chuyển được khai báo vào macro bằng phương pháp dùng câu lệnh Dim, biến số sẽ giữ lại giá trị của chính nó miễn là macro đang chạy. Nếu như macro này điện thoại tư vấn là macro khác, giá trị của đổi thay số sẽ được giữ lại (mặc mặc dù không sẵn dùng cho các macro khác) miễn là mọi macro không giống này đang dần chạy.Để minh họa cách hoạt động vui chơi của các vươn lên là số ở cấp thủ tục, hãy có tác dụng theo các bước sau:

Chèn mô-đun mới vào dự án công trình của bạn.

Nhập cả hai macro sau vào mô-đun này: tìm Sub Macro1() "set x as a procedure màn chơi variable Dim x As Integer MsgBox "giá trị khởi chế tạo của x là " & x x = 10 MsgBox "x is " & x "Dòng tiếp sau sẽ chạy Macro2 Macro2 MsgBox "x is still " và x over Sub Macro Phụ 2() MsgBox "x, như macro2 vẫn thấy là " & x kết thúc Sub

Chạy Macro1.

Bạn nhấn được thông tin sau đây: the initialized value of x is 0

Bấm ok, và bạn sẽ nhận được thông báo:  x is 10

Bấm vào OK, các bạn sẽ nhận được thông tin sau:x, as seen by Macro2 is

Bấm OK.

Macro2 không hiển thị quý giá cho biến hóa x vì trở thành x toàn thể trong Macro1. Chúng ta nhận được thông báo sau đây: x is still 10

Bấm vào OK.

Chạy Macro1.

Bạn nhận ra cùng một thông báo được diễn tả trong bước 3 cho 6 vì ngay trong khi Macro1 chấm dứt chạy ở bước 6, quý hiếm của phát triển thành x đã trở nên mất. Vì chưng đó, khi bạn chạy lại Macro1 ở cách 7, thông báo thứ nhất sẽ hiện giá trị x là không (giá trị khởi tạo).

từ khóa tĩnh

Nếu biến mức thủ tục được khai báo bởi từ khóa Tĩnh, phát triển thành số sẽ lưu lại lại cực hiếm của nó cho đến khi dự án của bạn được đặt lại. Vì đó, nếu bạn có một đổi thay tĩnh, thì lần tiếp theo bạn gọi thủ tục của bạn, trở nên số tĩnh được khởi chế tạo đến giá trị cuối cùng.Để xem từ khóa Tĩnh hoạt động như ráng nào, hãy có tác dụng theo quá trình sau:

Change the code in Macro1 to:Sub Macro1() "set x as a procedure level variable Static x As Integer MsgBox "the initialized value of x is " và x x = x + 10 MsgBox "x is " & xEnd Sub Chạy Macro1.

Bạn sẽ cảm nhận thông báo: the initialized value of x is 0

Bấm vào OK, các bạn sẽ nhận được thông báo: "Hãy x is 10

Bấm vào OK.

Chạy Macro1, rồi bạn nhận được thông báo sau: the initialized value of x is 10

Bấm vào OK, bạn sẽ nhận được thông tin sau: x is 20

Bấm vào OK.

Giá trị xuất hiện thêm trong thư là khác nhau lần đồ vật hai vì biến x được khai báo là biến đổi số tĩnh và biến hóa số giữ lại giá trị của nó sau khi bạn chạy Macro1 lần đầu tiên tiên.LƯU Ý: nếu khách hàng có biến chuyển số mức mô-đun, thì tuổi lâu của vươn lên là số giống hệt như khi biến đổi số là biến hóa số mức giấy tờ thủ tục tĩnh.Để chứng thực tuổi lâu của phát triển thành ở cung cấp mô-đun, hãy làm theo quá trình sau:

Change the code in the module that contains Macro1 khổng lồ the following:Dim x As Integer "create a module-level variableSub Macro1() MsgBox "the initialized value of x is " & x x = x + 10 MsgBox "x is " và xEnd Sub Chạy Macro1, rồi bạn sẽ nhận được thông báo sau: the initialized value of x is 0

Bấm vào OK, các bạn sẽ nhận được thông tin sau: x is 10

Bấm OK,

Chạy Macro1, rồi bạn sẽ nhận được thông tin này: the initialized value of x is 10

Bấm vào OK.

Bạn nhấn được thông tin sau đây: x is 20

Bấm vào OK.

Giá trị xuất hiện trong thư là khác nhau lần trang bị hai vì thay đổi x được khai báo là biến chuyển tĩnh và lưu giữ giá trị của nó sau khi chúng ta chạy Macro1 trước tiên tiên. 

Đặt lại dự án công trình để đặt lại đổi mới số

Nếu bạn muốn đặt lại giá bán trị cho một trở nên tĩnh hoặc cho biến số cấp cho mô-đun, hãy nhấn vào nút Đặt lại trên Thanh công cụ chuẩn chỉnh hoặc bấm vào Đặt lại trên menu Chạy.Nếu bạn thực hiện điều này cho dự án Macro1, rồi chạy lại Macro1,giá trị của vươn lên là x được khởi chế tạo trở về ko và bạn nhận được thông tin đầu tiên:

qqlive| j88