1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Học lập trình VB trên macro excel

3 532 3

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 3
Dung lượng 200,53 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

HỌC LẬP TRÌNH VB TRÊN MACRO EXCEL Thông Tin tài liệi Từ Internet “Phạm Văn Dương”  Thuộc tính RANGE Thuộc tính Range trả về một đối tượng, có thể là một cell đơn lẻ hoặc một dãy gồm

Trang 1

HỌC LẬP TRÌNH VB TRÊN MACRO EXCEL

Thông Tin tài liệi Từ Internet

“Phạm Văn Dương”

Thuộc tính RANGE

Thuộc tính Range trả về một đối tượng, có thể là một cell đơn lẻ hoặc một dãy gồm nhiều cell Trong lệnh gán giá trị của cell A1 vào cell A5 đưới đây, Range trả về giá trị chỉ gồm 1 cell:

Worksheets("Sheet1").Range("A5").Value = Worksheets("Sheet1").Range("A1").Value

Khi dùng với kiểu không xác định, Range trả về một dãy cell trên sheet đang hoạt động Để tránh kiểu "Râu ông nọ cắm cằm bà kia", bạn hãy kích hoạt một bảng tính bằng phương pháp Activate trước khi dùng thuộc tính Range

mà không cần chỉ ra giới hạn cụ thể Sau đây là cách điền vào vùng A1:H8 các số ngẫu nhiên bằng cách đặt công thức cho mỗi ô trong dãy mà trước đó sheet1 đã được kích hoạt:

Worksheets("sheet1").Activate

Range("A1:H8").Formula = "=rand()"

Bạn cũng có thể đặt tên cho dãy cell và chỉ cho VBA tham chiếu đến tên này

Ví dụ, bạn ra lệnh xóa nội dung của một dãy có tên "Criteria" bằng cách: Worksheets(1).Range("criteria").ClearContents

Nếu bạn sử dụng một đối số (argument) mà đối số đó là địa chỉ dãy cell, bạn phải định rõ địa chỉ đó theo kiểu A1 (dùng kiểu R1C1 máy sẽ báo lỗi)

Thuộc tính Cells sử dụng cú pháp Cells(row,column), với row là chỉ số hàng

và column là chỉ số cột, để trả về một cell đơn lẻ Chẳng hạn, bạn có thể gán giá trị 24 cho cell A1 bằng lệnh:

Worksheets(1).Cells(1, 1).Value = 24

Trang 2

Và gán một công thức cho cell A2:

ActiveSheet.Cells(2, 1).Formula = "=sum(b1:b5)"

Cho dù bạn có thể dùng công thức Range("A1") để trả về cell A1 (không hề sai!), nhưng dùng thuộc tính Cells thì tiện lợi hơn bởi bạn có thể sử dụng một biến số đại diện cho hàng hoặc cột phục vụ yêu cầu lập trình Bạn hãy tham khảo ví dụ tạo tiêu đề cột và hàng trên Sheet1 sau đây, lưu ý sau khi bảng tính đã được kích hoạt, thuộc tính Cells có thể được sử dụng thoải mái

mà không cần khai báo một sheet cụ thể nào vì nó trả về một cell trên sheet hoạt động

Sub SetUpTable()

Worksheets("sheet1").Activate

For theYear = 1 To 5

Cells(1, theYear + 1).Value = 1990 + theYear

Next theYear

For theQuarter = 1 To 4

Cells(theQuarter + 1, 1).Value = "Q" & theQuarter

Next theQuarter

End Sub

Mặc dù bạn có thể sử dụng những hàm xử lý chuỗi của Visual Basic để thay đổi tham chiếu kiểu A1, nhưng để dễ hiểu hơn và rèn luyện kỹ năng lập trình của mình, bạn nên sử dụng kiểu Cells(1, 1)

Nếu bạn sử dụng cú pháp expression.Cells(row,column), với expression là một biểu thức trả về một đối tượng Range, và row và column là vị trí tương đối so với góc trên trái của dãy cell thì kết quả trả về là một bộ phận của dãy Trong ví dụ dưới đây, VBA chỉ đến Cell(1,1) tức là cell C5 trên bảng tính:

Worksheets(1).Range("c5:c10").Cells(1, 1).Formula = "=rand()

Kết hợp Range and Cells

Phối hợp Range và Cells để tham chiếu đến một dãy cell, bạn hãy sử dụng

cú pháp Range(cell 1, cell 2), với cell 1 và cell 2 là cell bắt đầu và cell kết thúc của dãy Để đặt kiểu đường viền cho các cell bạn dùng lệnh sau:

With Worksheets(1).Range(.Cells(1, 1), Cells(10, 10)).Borders.LineStyle = xlThick End With

Ở đây cần lưu ý đến dấu chấm đằng trước thuộc tính Cells Dấu chấm này quy định Worksheets(1) mà With đã nêu trước đó được áp dụng cho thuộc

Trang 3

tính Cells để tiết kiệm chỗ và làm cho câu lệnh gọn hơn (nếu không có dấu chấm, thuộc tính Cells trả về các cell trên sheet hoạt động)

VBA dùng thuộc tính Offset(r,c) để di chuyển đến một cell khác có vị trí cách r hàng và c cột so với cell hiện hành Ví dụ dưới đây chọn một cell cách cell góc trên bên trái vùng hiện hành 3 hàng về phía dưới và 1 cột về bên phải Bạn không thể chọn một cell không nằm trong sheet hoạt động, vì vậy trước đó bạn phải kích hoạt bảng tính bằng lệnh Activate

Worksheets("sheet1").Activate

Selection.Offset(3, 1).Range("a1").Select

Phương thức Union

VBA sử dụng Union(range1, range2, ) để trả về một vùng hỗn hợp - là các vùng gồm hai hoặc nhiều khối cell tách biệt nhau Trong ví dụ dưới, một đối tượng được định nghĩa gồm 2 vùng A1:B2 và C3 4, sau đó chọn vùng đã được định nghĩa

Dim r1 As Range, r2 As Range, myMultiAreaRange As Range

Worksheets("sheet1").Activate

Set r1 = Range("A1:B2")

Set r2 = Range("C3 4")

Set myMultiAreaRange = Union(r1, r2)

myMultiAreaRange.Select

Nếu bạn làm việc với các vùng chọn chứa hai hay nhiều hơn một dãy cell, thuộc tính Areas rất hữu ích Nó chia một vùng chọn hỗn hợp thành các đối tượng Range riêng biệt và sau đó trả về tập hợp các đối tượng đó Bạn có thể sử dụng thuộc tính Count trên tập hợp đuợc trả về để kiểm tra một vùng chọn có chứa nhiều hơn một dãy cell hay không, như ví dụ sau đây:

Sub NoMultiAreaSelection()

numberOfSelectedAreas = Selection.Areas.Count

If numberOfSelectedAreas > 1 Then

MsgBox "You cannot carry out this command " & _

"on multi-area selections"

End If

End Sub

Ngày đăng: 03/01/2016, 21:28

TỪ KHÓA LIÊN QUAN

w