Gọi sheets bằng biến trong vba

hàm range trong vba: Here is α bài viết related to this topic.

Khi sử dụng VBA để lấy và gán dữ liệu vào Range hay Cells trong một Sheets của File Excel, điều trước nhất bạn cần là nắm vững mẹo khai báo và sử dụng các thành phần trên bằng lệnh VBA.

Vậy để có thể khai báo Sheets, Range và Cells của một File Excel bằng VBA, thì ngay trong nội dung này, mình sẽ chia sẻ với các bạn phương pháp để thực hiện.

Để dễ hình dùng hơn về cách khai báo 1 File Excel bằng VBA thì File Excel gọi là Workbook, tiếp đó là Worksheet, và sót lại là Range và Cells.

Khi sử dụng dữ liệu trong bảng tính Excel bằng VBA, bạn sẽ có các ràng buộc về Sheets và Workbook như: Range và Cells thuộc Sheets và Sheets đó thuộc Workbook nào?

Để tinh thông hơn các bạn đi tiếp từng phần nhỏ nhé.

1) Workbooks

Thông thường khi làm việc với một Workbook thì bạn không cần khai báo trong VBA, nhưng khi truy vấn dữ liệu từ các File Excel khác thì các bạn có thể khai báo như sau:

'khai báo workbook biến wb

Dim wb As Workbook

'gán workbook lúc này vào biến wb

Set wb = ThisWorkbook

hoặc khai báo cho một Workbook khác:

Dim wb As Workbook

'chẳng hạn: đường dẫn ?:Desktop2018-calendar.xlsx

Set wb = Workbooks.Open("đường dẫn")

2) Worksheet

Sheets trong VBA sẽ được auto tạo thành khi bạn tạo Sheets từ File Excel. Sheet có nhiều kiểu khai báo như khai báo theo tên, khai báo theo số thức tự Index trong VBAProject.

  • Cách khai báo theo số Index Sheets của Excel:

Số Index của Sheets được gán theo thứ tự tạo Sheets. Khi bạn tạo thêm Sheets thứ 2 thì số Index của Sheets này là 2 và sẽ không bao giờ thay đổi khi bạn biến đổi địa điểm xếp đặt của Sheets.

Gọi sheets bằng biến trong vba

'khai báo workbsheet biến ws

Dim ws As Worksheet

'gán biến worksheet thứ 1 vào biến ws

Set ws = Sheets(1)
  • Hoặc khai báo theo tên của Sheet

Gọi sheets bằng biến trong vba

Dim ws As Worksheet
Set ws = Sheets("ten-sheet1")
  • Cách lấy Sheets đang sử dụng
Dim ws As Worksheet
Set ws = ActiveSheet
  • Cách chuyển Sheets đang sử dụng

Chẳng hạn: Khi bạn đang ở Sheet1 thì khi thực hiện câu lệnh dưới đây thì sẽ auto chuyển sang Sheet2.

Sheet(2).Activate

hoặc:

Sheet(2).Select

3) Range và Cells

Khi truy xuất Range và Cells các bạn có một số Note sau:

  • Truy xuất dạng tên đại diện hàng và cột. Chẳng hạn: A1, B1, C1 ….
  • Truy xuất theo địa điểm hàng và cột. Chẳng hạn: Cells A1 sẽ có địa điểm hàng 1 và cột 1, tương đương Cells B1 sẽ có bị trí là hàng 1 và cột 2.
  • Cột sẽ có địa điểm theo số thứ tự như cột bên trái của bảng tính Excel, còn hàng sẽ qui ước theo thứ tự của chữ cái. Chẳng hạn: ? sẽ có địa điểm là 1, Ɓ là 2 và ₵ là 3…
Cách khai báo Cells:

Gọi sheets bằng biến trong vba

Dim rg As Range
'

gán Cells Cells có địa điểm hàng 1 và cột 1, tức là Cells A1 vào biến rg

Set rg = Cells(1,1)

hoặc

Dim rg As Range 
Set rg = Range("A1")
Cách khai báo Range:
  • Dạng tên đại diện:
Dim rg As Range

'gán Range từ Cells A1 đến Cells D10 vào biến

Set rg = Range("A1:D10")
  • Khai báo dạng địa điểm:
Dim rg As Range

'gán Range từ Cells A1 đến Cells D10 vào biến

Set rg = Range(Cells(1,1),Cells(10,4))
Khai váo Range và Cells với một Sheets xác nhận trước.

Gọi sheets bằng biến trong vba

Dim rg As Range
Dim ws As Worksheet
Set ws = Sheets("ten-sheet1")
Set rg = ws.Range(Cells(1,1),Cells(10,4))
Cách lấy giá trị và gán vào Cells
  • Cách lấy giá trị từ một Cells vào biến

Gọi sheets bằng biến trong vba

'khai báo biến giatriA2 là kiểu String, cũng giống như kiểu Text trong Excel

Dim giatriA2 As String

'gán giá trị của Cell A2 của Sheet có tên là ten_sheet1 vào biến giatriA2

giatriA2 = Sheets("ten-sheet1").Range("A2").Value

?Nếu bạn chẳng những đích danh Sheets thì VBA sẽ mặc định trỏ đến ActiveSheet.

  • Cách gán giá trị một biến vào một Cells:

'khai báo biến giatriA2 là kiểu String, cũng giống như kiểu Text trong Excel

Dim giatri As String

'gán giá trị vào biến giatriA2

giatri="VBA Sheet và Cells"

'gán giá trị của Cell A2 của Sheet có tên là ten_sheet1 vào biến giatriA2

Sheets("ten-sheet1").Range("A2").Value= giatri

? Note: Khi sử dụng Cells thay cho Range khi gán hoặc lấy giá trị thì các bạn sử dụng địa điểm. Chẳng hạn: Sheets(“ten-sheet1”).Cells(2, 1).Value = giatriA2

Cách chọn 1 Cells hoặc 1 Range

'chọn Cells A1

Sheets(1).Range("A1").Select

'chọn Cells A2 và A4

Sheets(1).Range("A2,A4").Select

'chọn Range từ A1 đến D10

Sheets(1).Range("A1:D10").Select

? Note: Khi bạn thực hiện câu lệnh Select 1 Cells hay Range thì bạn phải Activate Sheets trước.

4) Một số chẳng hạn về Sheets, Range và Cells

Trước khi thực hiện các vị dụ dưới đây bạn hãy tạo 1 File Excel với thành phần sau:

  • Tạo 3 Sheet có tên lần lượt là: ten-sheet1, ten-sheet2, ten-sheet3.
  • Tạo 1 Module trong VBA.

? Nếu mong muốn truy vấn Sheets theo tên thì bạn không nên đặt tên Sheets dài và có dấu.

Chẳng hạn 1: Đọc tên Workbook và Sheet1
Sub doc_ten_Wb_Ws()
Dim tenwb As String
Dim tenws As String
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Sheets(1)
tenwb = wb.Name
tenws = ws.Name

'hiển thị tên Workbook và Worksheets lên Message Box

MsgBox tenwb & " " & tenws

'tiếp tục chẳng hạn 2 ở giai đoạn này

End Sub

Khi tạo hàm trong Module xong, bạn có thể nhấn F5 để chạy lệnh hoặc Click vào ▶ Run Macro.

  • Nếu bạn đang đặt con trỏ vào hàm thì Run Macro sẽ thực lúc này hàm đó.
  • Khi con trỏ chuột đang trỏ ở địa điểm ngoài bảng soạn lệnh thì VBA sẽ hiện 1 bảng chọn hàm, bạn chọn vào hàm mong muốn thực hiện và Run để chạy lệnh.
Gọi sheets bằng biến trong vba

Kết quả: Một cửa sổ thông báo hiển thị lên tên Workbook và tên Worksheet.

Gọi sheets bằng biến trong vba

Chẳng hạn 2: Gán tên Workbook vào A1 và tên Sheet vào Cell A2 ở mỗi Sheets.

Kế tiếp chẳng hạn 1, sau khoảng thời gian gán tên Workbook và Worksheet vào biến thì bạn có thể ghi vào A1 và A2 của Sheet1.

Qua Sheet2 và Sheet3, vì tên Worbook không bao giờ thay đổi nên bạn chỉ cần gán lại Worksheet vào biến và ghi vào Sheets tương ứng.

ws.Range("A1").Value = tenwb
ws.Range("A2").Value = tenws

Set ws = wb.Sheets(2) tenws = ws.Name ws.Range("A1").Value = tenwb ws.Range("A2").Value = tenws

Set ws = wb.Sheets(3) tenws = ws.Name ws.Range("A1").Value = tenwb ws.Range("A2").Value = tenws

Kết quả: Ở cả 3 Sheets, tên Workbook sẽ được ghi vào Cells a1, tên Sheets được ghi vào Cell A2.

Gọi sheets bằng biến trong vba
Chẳng hạn 3: Đọc giá trị Cell A1 và A2 ở Sheet2 và ghi sang Cells B1 và B2 của Sheet1
Sub doc_giatri_sheet2()
Dim giatriA1 As String
Dim giatriA2 As String
Sheets(2).Activate
giatriA1 = Sheets(2).Cells(1, 1).Value
giatriA2 = Sheets(2).Cells(2, 1).Value
Sheets(1).Activate
Sheets(1).Range("B1").Value = giatriA1
Sheets(1).Range("B2").Value = giatriA2
End Sub

Kết quả: Giá trị của Cells A1 và A2 của Sheet2 sẽ được ghi vào Cells B1 và B2 của Sheet1.

Gọi sheets bằng biến trong vba

? Backlink tải File VBA mẫu: http://123link.pro/AkAjl

OK! Trên đầy là thống kê các cách khai báo và sử dụng Sheets, Range và Cells trong Excel bằng VBA. Khi nắm được cách sử dụng các thành của một File Excel bằng VBA thì ứng dụng vào các hàm cầu kỳ bạn sẽ đơn giản chớp được hơn.

Mong ước nội dung này đã hỗ trợ các bạn đáp ứng được vấn đề đang tìm kiếm.

Chúc các bạn một ngày vui vẻ!

Khám phá 2 đối tượng | Range | Cells | Các mẹo đi kèm| Phần 1
Bài 5 này sẽ giới thiệu về 2 đối tượng chính kế tiếp trong VBA ( Range, Cells ), các mẹo đi kèm như select , các cách điền phương thức Exel bằng VBA .
Các bạn phấn đấu xem hết video để hiểu cụ thể, cuối video có bài tập mẫu để thực hành nhé .
Thank mọi người !

In addition to looking at this article You can also see other useful information. Many more we provide here: See more knowledge here.

Excel VBA Bài 25: Phối hợp Range và Cells
Tự học Excel căn bản, Tự học Excel VBA, Excel VBA từ cơ bản tới chuyên sâu

Mọi liên hệ qua các kênh sau:
1. Fanpage: https://facebook.com/revitstructurevi…
2. Thư điện tử: |
3. Trang web: ersvn.net

Mọi tấm chân tình hảo tấm mong muốn đóng góp cho Author tiếp tục ra các video khác xin vui lòng liên hệ thư điện tử bên trên hoặc xem backlink bên dưới. Xin chân tình cảm ơn.
https://ersvn.net/unghovatuthien
excel,microsoft excel,vba,vba excel,excel vba,excel cơ bản,excel chuyên sâu,office 365

Mọi thông tin cụ thể mời bạn ghé thăm Trang web:
https://aihocdutoan.com
Fb fanpage: Ai học dự toán Uông Thắng

Khóa học lập trình VBA căn bản
Th.Ş Nguyễn Thành Đông
Trong bài học này, tất cả chúng ta sẽ tìm tòi về:
+ Cách dùng Mảng (Array) để tối ưu code hơn cho VBA
+ Chạy debug kiểm soát lỗi VBA
+ Backlink file excel: https://drive.google.com/file/d/1ZbOJnSl6NQ9R9kQkU5IqTc7UMA283Ud/view?fbclid=IwAR01KKqRI0AzeWaYi1AYyobVvLHnNxNJtWjRc9XZ7rLdl0NnGgmLpD4
=========
Trang web: http://www.exceltaichinh.com/
Fan Page: https://www.facebook.com/chinhphuc.office

In addition to looking at this article You can also see other useful information. Many more we provide here: See other waysthu-thuat-may-tinh/

Thank you very much for viewing the bài viết topic. hàm range trong vba