Chọn vùng trong VBA

Liên hệ QC

keke355992

Thành viên thường trực
Tham gia
19/1/08
Bài viết
310
Được thích
20
Nghề nghiệp
KẾ TOÁN THUẾ, TƯ VẪN THUẾ
Chào các AC trong diễn đàn. Nhờ các AC xem giúm e file này, trong file e đã ghi rõ y/c. E cảm ơn ạ
 

File đính kèm

  • Vung chon VBA.xls
    30.5 KB · Đọc: 215
Chào các AC trong diễn đàn. Nhờ các AC xem giúm e file này, trong file e đã ghi rõ y/c. E cảm ơn ạ
Làm biếng "chế" lại cái mới nên lấy code của bạn luôn: Bạn sửa câu lệnh
Mã:
Range(Cells(.Row, 2), Cells(.Row, 10).End(xlDown)).Select
thành
Mã:
Range(Cells(.Row, 2), Cells(.Row, 10).End(xlDown)[COLOR=#ff0000][B].Offset(-5)[/B][/COLOR]).Select
 
Upvote 0
Làm biếng "chế" lại cái mới nên lấy code của bạn luôn: Bạn sửa câu lệnh
Mã:
Range(Cells(.Row, 2), Cells(.Row, 10).End(xlDown)).Select
thành
Mã:
Range(Cells(.Row, 2), Cells(.Row, 10).End(xlDown)[COLOR=#ff0000][B].Offset(-5)[/B][/COLOR]).Select

Ôi đơn giản vậy mà e k nghĩ ra. Cứ loay hoay ++ -- row các kiểu. Thank a nhìu :)
 
Upvote 0
Nếu chọn 1 vùng thì xác định điểm đầu cần chọn rồi mở rộng bằng resize ra số dòng, số cột . Nếu biết một chút về VBA thì tự sửa thôi ...
Có thể trên thực tế thì cái dòng cuối cùng đó không biết là dòng nào, do đó cũng chưa biết được tổng số dòng cần chọn. Như vậy thì Resize trong trường hợp này là không ổn. Và tất nhiên nếu dòng cuối cùng mà không lớn hơn 5 thì cách dùng Offset như bài #2 cũng "tèo".
 
Upvote 0
Có thể trên thực tế thì cái dòng cuối cùng đó không biết là dòng nào, do đó cũng chưa biết được tổng số dòng cần chọn. Như vậy thì Resize trong trường hợp này là không ổn. Và tất nhiên nếu dòng cuối cùng mà không lớn hơn 5 thì cách dùng Offset như bài #2 cũng "tèo".
Vẫn bài toán này, nhờ A và các Ac khác xem giúp em 1 chút nữa ạ. E cảm ơn nhìu !!!
 

File đính kèm

  • Vung chon VBA.xls
    35 KB · Đọc: 83
Upvote 0
Bác @nghiaphuc xem giúp em với ạ
 
Upvote 0
Có thể trên thực tế thì cái dòng cuối cùng đó không biết là dòng nào, do đó cũng chưa biết được tổng số dòng cần chọn. Như vậy thì Resize trong trường hợp này là không ổn. Và tất nhiên nếu dòng cuối cùng mà không lớn hơn 5 thì cách dùng Offset như bài #2 cũng "tèo".
Trong file của bạn ấy có 2 câu thế này , mình xin trích dẫn :
- Khi em Click button, vùng chọn của em là : C4:J27
- E muốn khi ấn button thì chọn 1 vùng cách dòng dữ liệu cuối cùng 5 dòng, trong trường hợp này vùng chọn sẽ là C4:J22
Nên chẳng biết làm theo câu nào , nên làm tạm vậy, nếu chưa đúng thì la lên ...Nhưng chủ topic coi như không nhìn thấy... thì thôi . Nếu nói về chọn vùng mà còn chưa biết thì đừng nói đến VBA nữa . Chủ đề này mình không tham gia nữa ...
 
Upvote 0
Trong file của bạn ấy có 2 câu thế này , mình xin trích dẫn :
- Khi em Click button, vùng chọn của em là : C4:J27
- E muốn khi ấn button thì chọn 1 vùng cách dòng dữ liệu cuối cùng 5 dòng, trong trường hợp này vùng chọn sẽ là C4:J22
Nên chẳng biết làm theo câu nào , nên làm tạm vậy, nếu chưa đúng thì la lên ...Nhưng chủ topic coi như không nhìn thấy... thì thôi . Nếu nói về chọn vùng mà còn chưa biết thì đừng nói đến VBA nữa . Chủ đề này mình không tham gia nữa ...
E chào A. Cho phép e nói 1 chút. Hôm qa đúng là em có thử cách của A, sau đó thử cách của A NghiaPhuc. Theo đó, cách của A nghiaphuc đáp ứng đúng y/c của e mong muốn, e vội cảm ơn A ý. Có thể trong lúc đó, e đã quên k Reply lại cho A. Mong a thông cảm ạ. Có thể a sẽ hỏi là: Hôm nay chẳng nhẻ vẫn quên... E còn trẻ ng, mới tập tành VBA và còn rất nhiều điều muốn hỏi A và các thầy, Ac trong diễn đàn. E sẽ rút kinh nghiệm. Chúc A 1 ngày tốt lành !
 
Upvote 0
cho em hỏi :muốn chọn vùng ( cụ thể là hàng) mà trong đó chứa biến i thì chọn như thế nào? ví dụ như sau
Sub vidu()
Dim i, j As Integer
j = 3
For i = 1 To 100
If Worksheets("concrete").Cells(i, 4).Value = "Flocculation and Sedimentation Basin" Then
Worksheets("Sheet1").Range(...).Value = ...' em muốn chọn hàng thứ i "
Else
....


End If
Next i






End Sub
 
Upvote 0
cho em hỏi :muốn chọn vùng ( cụ thể là hàng) mà trong đó chứa biến i thì chọn như thế nào? ví dụ như sau
Sub vidu()
Dim i, j As Integer
j = 3
For i = 1 To 100
If Worksheets("concrete").Cells(i, 4).Value = "Flocculation and Sedimentation Basin" Then
Worksheets("Sheet1").Range(...).Value = ...' em muốn chọn hàng thứ i "
Else
....


End If
Next i






End Sub
Hàng thứ i thì là cột thứ mấy? Hay chỉ là hàng không thôi? Nếu chỉ là chọn hàng không thôi thì bạn cứ cho luôn vào : Rows(i) . Nếu chọn vùng kiểu như Range("A5:B8") mà số 8 là i thì điền Range("A5:B" & i)
 
Upvote 0
cho em hỏi :muốn chọn vùng ( cụ thể là hàng) mà trong đó chứa biến i thì chọn như thế nào? ví dụ như sau
Sub vidu()
Dim i, j As Integer
j = 3
For i = 1 To 100
If Worksheets("concrete").Cells(i, 4).Value = "Flocculation and Sedimentation Basin" Then
Worksheets("Sheet1").Range(...).Value = ...' em muốn chọn hàng thứ i "
Else
....


End If
Next i

End Sub
Nếu chỉ muốn chọn hàng i thì sử dụng thế này.
Mã:
Worksheets("Sheet1").Rows([COLOR=#ff0000][B]i[/B][/COLOR]).Select
 
Upvote 0
cho em hỏi thêm câu này:
em có sub sau mà sao khi chạy nó báo lỗi ở dòng tô đỏ.
các bác giúp em với.

Sub copy1() Dim copyrange As Range
Dim numrow, numcol As Integer
Set copyrange = Sheets("con1").[a4].CurrentRegion
copyrange.Offset(2).Resize(copyrange.Rows.Count - 2, copyrange.Columns.Count).Select
Selection.copy
Worksheets("FSB").Range("A5").Select
Selection.Insert Shift:=xlDown
End Sub
 
Upvote 0
cho em hỏi thêm câu này:
em có sub sau mà sao khi chạy nó báo lỗi ở dòng tô đỏ.
các bác giúp em với.

Sub copy1() Dim copyrange As Range
Dim numrow, numcol As Integer
Set copyrange = Sheets("con1").[a4].CurrentRegion
copyrange.Offset(2).Resize(copyrange.Rows.Count - 2, copyrange.Columns.Count).Select
Selection.copy
Worksheets("FSB").Range("A5").Select
Selection.Insert Shift:=xlDown
End Sub
Bạn xem lại sheet FSB có tồn tại hay không?
 
Upvote 0
cho em hỏi thêm câu này:
em có sub sau mà sao khi chạy nó báo lỗi ở dòng tô đỏ.
các bác giúp em với.

Sub copy1() Dim copyrange As Range
Dim numrow, numcol As Integer
Set copyrange = Sheets("con1").[a4].CurrentRegion
copyrange.Offset(2).Resize(copyrange.Rows.Count - 2, copyrange.Columns.Count).Select
Selection.copy
Worksheets("FSB").Range("A5").Select
Selection.Insert Shift:=xlDown
End Sub

Thêm một dòng màu đỏ:

Selection.copy
Sheets("FSB").Select
Sheets("FSB").Range("A5").Select
 
Upvote 0
Web KT
Back
Top Bottom