Lấy cột động trong VBA ra sao

Liên hệ QC

rockydatalone

Thành viên mới
Tham gia
3/4/07
Bài viết
48
Được thích
9
Mình rất tức vụ viết code VBA +-+-+-+, mỗi lần viết xong hễ thấy cần chèn cột thêm vào coi như đi toi cái Code của mình ;;;;;;;;;;;, mình phải chỉnh sửa lại tất cả code, để hiển thị đúng cột, vậy các bác có cách nào để VBA hiểu đó là cột lúc trước không (giống như trị tuyệt đối, tương đối trong Excel vậy đó) //////.
 
Mình rất tức vụ viết code VBA +-+-+-+, mỗi lần viết xong hễ thấy cần chèn cột thêm vào coi như đi toi cái Code của mình ;;;;;;;;;;;, mình phải chỉnh sửa lại tất cả code, để hiển thị đúng cột, vậy các bác có cách nào để VBA hiểu đó là cột lúc trước không (giống như trị tuyệt đối, tương đối trong Excel vậy đó) //////.

Bạn có thể dùng ký tự đại diện cho cột đó. Nếu Tìm trong dãy [A1:Z1] chẳng hạn, ô nào thỏa giá trị cho trước thì lấy cả cột đó!
|A|B|C|D
1|[A]| |[C]|[D]
2|...|...|...|...
3|...|...|...|...


Ví dụ trên, Tìm trong dòng (Row 1) số một có ký tự "[C]" thì lấy cả cột của ô chứa ký tự đó luôn
 
Lần chỉnh sửa cuối:
Upvote 0
Cái vụ này thì VBA kém lắm nhưng có thể khắc phục bằng cách dùng name để lấy địa chỉ cột đó. Và khi vào VBA bạn chỉ cần nhập Range("") Ví dụ: Name Cot có Refers to: = Sheet1!$G$10 Và trong VBA bạn lấy ô này bằng cách gõ: Range("Cot").Value. Vậy là bạn có thể Insert bao nhiêu cột tùy thích mà không ảnh hưởng code trong VBA đâu. Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Nói chung được cái này mất cái kia... VBA thì kém vụ cập nhật range... Đặt Rng = Range("C10") thì nó cứ là C10, bất kể người ta đã chèn dòng chèn cột bao nhiêu lần rồi... Cái này gần giống INDIRECT...
Tuy nhiên VBA lại có những mặt mạnh khác nếu ta biết khai thác, điển hình trong số đó là CurrentRegion và SpecialCells...
Thuật toán tùy thuộc vào tình hình cụ thể của dử liệu. Vậy nên nếu bạn có file sẳn thì đưa lên người ta mới biết sẽ dùng cách gì định vị range
 
Upvote 0
Mình rất tức vụ viết code VBA +-+-+-+, mỗi lần viết xong hễ thấy cần chèn cột thêm vào coi như đi toi cái Code của mình ;;;;;;;;;;;, mình phải chỉnh sửa lại tất cả code, để hiển thị đúng cột, vậy các bác có cách nào để VBA hiểu đó là cột lúc trước không (giống như trị tuyệt đối, tương đối trong Excel vậy đó) //////.
Mình nghỉ cách phải đánh dấu các cột ấy mà thôi;
* Bằng chữ cái không ai dùng trên trang tính ấy, Tại dòng thích hợp trong cột;
* Bằng màu sắc đặt trưng tại dòng đặt trưng (giành riêng)
* Bằng cách format ô giao cắt giữa cột cần ghi nhận & dòng riêng biệt.
* . . . .
* Trưng thu vài ô trên trang tính để lưu giá trị các cột cần lưu
* Lưu vô hằng số đã khai báo
* . . . .
:-= :-= :-=
 
Upvote 0
Web KT

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

Back
Top Bottom