Hỏi về cách đặt tên trong VBA (1 người xem)

  • Thread starter Thread starter doanduy
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

doanduy

Thành viên mới
Tham gia
25/11/10
Bài viết
12
Được thích
1
Tôi có một tình huống như thế này mong các thành viên giúp đỡ: trong VBA tôi muốn một lệnh outofilter sau khi lọc xong rồi thì tôi muốn đặt tên cho cái bảng mà tôi vừa lọc xong đó: nhưng mà VBA nó không hiểu mong các cao thủ chỉ giáo:
Sub LocBaoCao()
Dim val1cell as long
val1cell = Sheets("sheet1").[G1]
MaxRow = Sheets("sheet1").[A65536].End(xlUp).Row
Sheets("sheet1").Range("A1:B1" & MaxRow).AutoFilter Field:=1, Criteria1:=val1cell
End Sub
sau khi tôi muốn lọc dữ liệu của colum a và B. tiếp theo tôi muốn đặt tên cho các colum A, B vừa lọc xong thì tôi phải làm thế nào. mong các thành viên giúp đỡ. thanks!
 
Muốn biết thế nào thì thử dùng macro record tạo cai neme đi rồi biết

cong thuc tao name:
Workbook("ten").names.add name:="ten" refersto:="dia chi"

ACK CÁI NÀY LỌC TẠI CHỖ MÀ, TÊN DIC GÌ, ĐỊA CHỈ NHẢY MUÁ
 
Lần chỉnh sửa cuối:
Upvote 0
Tôi có một tình huống như thế này mong các thành viên giúp đỡ: trong VBA tôi muốn một lệnh outofilter sau khi lọc xong rồi thì tôi muốn đặt tên cho cái bảng mà tôi vừa lọc xong đó: nhưng mà VBA nó không hiểu mong các cao thủ chỉ giáo:
Sub LocBaoCao()
Dim val1cell as long
val1cell = Sheets("sheet1").[G1]
MaxRow = Sheets("sheet1").[A65536].End(xlUp).Row
Sheets("sheet1").Range("A1:B1" & MaxRow).AutoFilter Field:=1, Criteria1:=val1cell
End Sub
sau khi tôi muốn lọc dữ liệu của colum a và B. tiếp theo tôi muốn đặt tên cho các colum A, B vừa lọc xong thì tôi phải làm thế nào. mong các thành viên giúp đỡ. thanks!
Thử theo hướng này coi có xài được không nha
PHP:
Sub test()
With Range([A1], [B65536].End(3))
   .Sort [A1], Header:=1
   .AutoFilter 1, [G1].Value
End With
Range([A2], [B65536].End(3)).SpecialCells(12).Name = "VungLoc"
End Sub
 
Upvote 0
Thử theo hướng này coi có xài được không nha
Mã:
Sub test()
With Range([A1], [B65536].End(3))
   .Sort [A1], Header:=1
   .AutoFilter 1, [G1].Value
End With
[COLOR=#ff0000][B]Range([A2], [B65536].End(3))[/B][/COLOR].SpecialCells(12).Name = "VungLoc"
End Sub
Nguyên tắc: Cái gì đã có thì ta cứ bám vào đó mà làm tiếp, không cần phải tạo mới
Như cái màu đỏ ở trên, ta có thể viết: ActiveSheet.AutoFilter.Range là hoàn toàn hợp lý
Tuy nhiên, dùng SpeciCells(12) để đặt name phải coi chừng.
Ta biết rằng công thức trong Define name có giới hạn (ít nhất là giới hạn về độ dài chuổi). Đặt trường hợp sau khi filter, các vùng visible bị chia ra thành hàng ngàn Areas thì cái name VungLoc ấy sẽ bị lỗi nghiêm trọng (dù không lỗi thì nó cũng không thể tham chiếu được đến tất cả những vùng thỏa điều kiện)
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom