Tự động chọn Range trong VBA

  • Thread starter Yui Từ
  • Ngày gửi
Y

Yui Từ

Guest
11/9/16
1
0
1
33
Chào mọi người. Minh có 1 vấn đề mong mọi người giúp đỡ.
Mình có đính kèm file Excel ở dưới.
Trong file của mình tạo 2 Sheet: Sheet1 và Sheet2
Ở Sheet1 là bảng text mình nhập sẵn a,b,c,d,e và cột SL
Sheet2 là bản dữ liệu input có a,b,c,d,e và cột SL tương ứng với mỗi chữ cái
Trong VBA mình đã viết sẵn code để tính tổng SL của các chữ cái đó và nhập tổng SL đó vào cột SL của Sheet1
Nhưng vấn đề ở đây là Range của myCell mình mặt định là từ ("A1: D20"), thực tế thì số liệu input trong Sheet2 nó thay đổi và không xác định được vùng dữ liệu, nên mình chỉ biết cách là chọn vùng dữ liệu mặt định lớn hơn dữ liệu input(VD: Range("A1: D10000")) như vậy VBA chạy rất lâu.
Mình muốn khi input dữ liệu vào Sheet2, VBA tự động chọn vùng dữ liệu đó rồi chạy, có ít dữ liệu thì chạy ít, nhiều chạy nhiều chứ ko mặt định chạy từ ("A1: D10000") như hiện tại nữa.
Cảm ơn mọi người.sheet1.png sheet2.png codevba.png
 
Khóa học Quản trị dòng tiền
N

nguoiconxunui

Khách vãng lai
29/6/04
1,280
215
63
Bình Định
aso2pc.co.cc
PHP:
Sub DynamicRange()
'Best used when first column has value on last row and first row has a value in the last column

Dim sht As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range

Set sht = Worksheets("Sheet1")
Set StartCell = Range("D9")

'Find Last Row and Column
  LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).Row
  LastColumn = sht.Cells(StartCell.Row, sht.Columns.Count).End(xlToLeft).Column

'Select Range
  sht.Range(StartCell, sht.Cells(LastRow, LastColumn)).Select

End Sub

PHP:
Sub DynamicRange()
'Best used when you want to include all data stored on the spreadsheet

Dim sht As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range

Set sht = Worksheets("Sheet1")
Set StartCell = Range("D9")

'Refresh UsedRange
  Worksheets("Sheet1").UsedRange

'Find Last Row and Column
  LastRow = StartCell.SpecialCells(xlCellTypeLastCell).Row
  LastColumn = StartCell.SpecialCells(xlCellTypeLastCell).Column

'Select Range
  sht.Range(StartCell, sht.Cells(LastRow, LastColumn)).Select
 
End Sub
 

Xem nhiều

Webketoan Zalo OA