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
Thêm một dòng màu đỏ:

Selection.copy
Sheets("FSB").Select
Sheets("FSB").Range("A5").Select
em đã làm như bác nói nhưng nó lại hiện bôi vàng dòng màu đỏ
em gửi file lên bác xem hộ em cái. không biết excel của em có bị lỗi gì không


Sub copy2()
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
Sheets("FSB").Select
Worksheets("FSB").Range("A3").Select
Selection.Insert Shift:=xlDown
End Sub
 

File đính kèm

  • vba2.jpg
    vba2.jpg
    21 KB · Đọc: 3
  • concrete.xlsm
    84.6 KB · Đọc: 8
Lần chỉnh sửa cuối:
Upvote 0
em đã làm như bác nói nhưng nó lại hiện bôi vàng dòng màu đỏ
em gửi file lên bác xem hộ em cái. không biết excel của em có bị lỗi gì không

Thêm dòng màu xanh

Set copyrange = Sheets("con1").[a4].CurrentRegion
Sheets("con1").Select
copyrange.Offset(2).Resize(copyrange.Rows.Count - 2).Select
 
Upvote 0
Thêm dòng màu xanh

Set copyrange = Sheets("con1").[a4].CurrentRegion
Sheets("con1").Select
copyrange.Offset(2).Resize(copyrange.Rows.Count - 2).Select
cảm ơn bác rất nhiều nhiều nha ..dòng lệnh của em đã chạy.
mà bác có thể giải thích cho em rõ hơn tại lại như vậy ạ.
còn một vấn đề nữa khi em nhấn F5 để chạy thì chương trình hiện bảng "update Value" như hình . em không hiểu gì nên click "Cancel"..cái bảng đó lại hiện ra lần nữa, em tiếp tục click "cancel" thì bảng đó mất đi mà dòng lệnh chạy được.
 

File đính kèm

  • update.jpg
    update.jpg
    25.2 KB · Đọc: 25
Upvote 0
cảm ơn bác rất nhiều nhiều nha ..dòng lệnh của em đã chạy.
mà bác có thể giải thích cho em rõ hơn tại lại như vậy ạ.
còn một vấn đề nữa khi em nhấn F5 để chạy thì chương trình hiện bảng "update Value" như hình . em không hiểu gì nên click "Cancel"..cái bảng đó lại hiện ra lần nữa, em tiếp tục click "cancel" thì bảng đó mất đi mà dòng lệnh chạy được.
Mã:
Sub copy2()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual
[COLOR=#0000ff]'// code của bạn: Từ chỗ Dim tới trước End Sub
'.......[/COLOR]

Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.Calculation = xlCalculationAutomatic
End Sub
 
Upvote 0
em lại vướng nữa bác ơi,
sau khi em sort bằng code

Sub sort()
Dim sortrange As Range
Set sortrange = Sheets("con1").[a4].CurrentRegion
Sheets("con1").Select
sortrange.AutoFilter Field:=3, Criteria1:= _
"Flocculation and Sedimentation Basin"

End Sub

em cho chạy tiếp code hồi nãy ( ở dưới ). thì nó không báo lỗi mà cũng không xuất kết quả luôn.
nếu không chạy sub sort () thì sub copy2() lại chạy ngon lành...mong các bác chỉ em biết sai ở chỗ nào vậy ;;;;;;;;;;;


Sub copy2()
Dim copyrange As Range
Dim numrow, numcol As Integer
Set copyrange = Sheets("con1").[a4].CurrentRegion
Sheets("con1").Select
copyrange.Offset(2).Resize(copyrange.Rows.Count - 2, copyrange.Columns.Count).Select
Selection.copy
Sheets("FSB").Select
Worksheets("FSB").Range("A3").Select
Selection.Insert Shift:=xlDown
End Sub
 
Upvote 0
cái phần thêm này của bác có ý nghĩ như thế nào vậy !
em thử thêm và chạy lại thì kết quả vẫn vậy .
Mã:
Sub copy2()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual
[COLOR=#0000ff]'// code của bạn: Từ chỗ Dim tới trước End Sub
'.......[/COLOR]

Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.Calculation = xlCalculationAutomatic
End Sub
 
Upvote 0
Các bác giúp em chọn các vùng khác nhau (màu vàng trong file gửi kèm) theo vùng chỉ định nhập ở ô L1:M2 (em muốn chọn kiểu như này ah; B&vlueL1:C&valueM1, B&valueL2:C&valueM2) em xin cảm ơn
 

File đính kèm

  • select.xlsx
    10.6 KB · Đọc: 7
Upvote 0
Các bác giúp em chọn các vùng khác nhau (màu vàng trong file gửi kèm) theo vùng chỉ định nhập ở ô L1:M2 (em muốn chọn kiểu như này ah; B&vlueL1:C&valueM1, B&valueL2:C&valueM2) em xin cảm ơn
Dùng đỡ cái này:
PHP:
Option Explicit
Sub chonvung()
Dim i&, rng, startC As String, endC As String
Dim u As Range, addr As String
rng = Range("L1:M" & Cells(Rows.Count, "L").End(xlUp).Row).Value
startC = "B"' cot dau
endC = "C" ' cot cuoi
For i = 1 To UBound(rng)
    If rng(i, 1) <> "" And rng(i, 2) <> "" Then
        addr = startC & rng(i, 1) & ":" & endC & rng(i, 2)
        If u Is Nothing Then
            Set u = Range(addr)
        Else
            Set u = Union(u, Range(addr))
        End If
    End If
Next
u.Select
End Sub
 
Upvote 0
Các bác giúp em chọn các vùng khác nhau (màu vàng trong file gửi kèm) theo vùng chỉ định nhập ở ô L1:M2 (em muốn chọn kiểu như này ah; B&vlueL1:C&valueM1, B&valueL2:C&valueM2) em xin cảm ơn
Bạn thử coi

Mã:
Sub troioi()
    With Sheets("Sheet1")
        Union(.Cells(2, 2), .Cells(2, 3), .Range(.Cells(7, 2), .Cells(8, 3))).Select
    End With
End Sub
 
Upvote 0
Bạn thử coi

Mã:
Sub troioi()
    With Sheets("Sheet1")
        Union(.Cells(2, 2), .Cells(2, 3), .Range(.Cells(7, 2), .Cells(8, 3))).Select
    End With
End
[/QUOTE]

Bạn thử coi

Mã:
Sub troioi()
    With Sheets("Sheet1")
        Union(.Cells(2, 2), .Cells(2, 3), .Range(.Cells(7, 2), .Cells(8, 3))).Select
    End With
End Sub
hay wa cảm ơn bác nhiều
Bài đã được tự động gộp:

hay wa cảm ơn bác nhiều
ah không dc vì giá trị cột L1 đến M2 thay đổi nó ko chọn dc
Bài đã được tự động gộp:

Dùng đỡ cái này:
PHP:
Option Explicit
Sub chonvung()
Dim i&, rng, startC As String, endC As String
Dim u As Range, addr As String
rng = Range("L1:M" & Cells(Rows.Count, "L").End(xlUp).Row).Value
startC = "B"' cot dau
endC = "C" ' cot cuoi
For i = 1 To UBound(rng)
    If rng(i, 1) <> "" And rng(i, 2) <> "" Then
        addr = startC & rng(i, 1) & ":" & endC & rng(i, 2)
        If u Is Nothing Then
            Set u = Range(addr)
        Else
            Set u = Union(u, Range(addr))
        End If
    End If
Next
u.Select
End Sub
Cảm ơn bác nhiều đúng cái em đang cần
 
Lần chỉnh sửa cuối:
Upvote 0
Trực quan hơn nè, mại zô:
PHP:
Sub SelectionRanges1()
 Dim Rng As Range
 
 With Sheets("Sheet1")
    Set Rng = .Range("B" & .[L1].Value & ":C" & .[M1].Value)
    MsgBox Rng.Address, , "Rng.Address:"
    Union(Rng, .Range("B" & .[L2].Value & ":C" & .[M2].Value)).Select
    MsgBox Selection.Address, , "Vùng Chon Theo Chi Sô Dòng & Côt"
 End With
End Sub
 
Upvote 0
Trực quan hơn nè, mại zô:
PHP:
Sub SelectionRanges1()
 Dim Rng As Range
 
 With Sheets("Sheet1")
    Set Rng = .Range("B" & .[L1].Value & ":C" & .[M1].Value)
    MsgBox Rng.Address, , "Rng.Address:"
    Union(Rng, .Range("B" & .[L2].Value & ":C" & .[M2].Value)).Select
    MsgBox Selection.Address, , "Vùng Chon Theo Chi Sô Dòng & Côt"
 End With
End Sub
Bác lại trói cái vùng L1:M2 rồi. Thời đại 4.0 rồi thả rông cho nó tự do mát mẻ đi bác.
 
Upvote 0
Web KT
Back
Top Bottom