Lấy danh sách: Địa chỉ của ô có công thức trong sheet

Liên hệ QC

boyxin

Members actively
Tham gia
10/3/08
Bài viết
1,664
Được thích
2,335
Chào các bác, Em có vấn đề như sau:

Trong VBA hoặc dùng công thức:
Có cách nào lấy được DS địa chỉ các ô có công thức (cell has formula)? Xin được trợ giúp


 
Bác dùng code này sẽ ổn liền! Giá trị xuất ra ở F1 đó! Bác có thể thay đổi tùy ý!
PHP:
Sub laydiachi() Set vung = Cells.SpecialCells(xlCellTypeFormulas, 23) For i = 1 To vung.Count temp = temp & ", " & vung.Cells(i).Address(0, 0) Next Range("F1").Value = Right(temp, Len(temp) - 2) End Sub
Thân.
 
Lần chỉnh sửa cuối:
Upvote 0
Bác dùng code này sẽ ổn liền! Giá trị xuất ra ở F1 đó! Bác có thể thay đổi tùy ý!
PHP:
Sub laydiachi()
Set vung = Cells.SpecialCells(xlCellTypeFormulas, 23)
For i = 1 To vung.Count
temp = temp & ", " & vung.Cells(i).Address(0, 0)
Next
Range("F1").Value = Right(temp, Len(temp) - 2)
End Sub
Thân.

@Po_Pikachu: xem lại giúp, mong muốn như trong file đính kèm
 

File đính kèm

  • List Address.rar
    7 KB · Đọc: 21
Upvote 0
@Po_Pikachu: xem lại giúp, mong muốn như trong file đính kèm
Thì bạn sửa vòng lập lại 1 chút là xong ngay mà! Chẳng hạn:
PHP:
Sub Laydiachi()
  Dim Vung As Range, Clls As Range, i As Long
  Set Vung = Cells.SpecialCells(3, 23)
  Range("I2:J1000").ClearContents
  For Each Clls In Vung
    i = i + 1
    Cells(i + 1, 10) = Clls.Address(0, 0)
    Cells(i + 1, 9) = i
  Next
End Sub
 
Upvote 0
Thì bạn sửa vòng lập lại 1 chút là xong ngay mà! Chẳng hạn:
PHP:
Sub Laydiachi()
  Dim Vung As Range, Clls As Range, i As Long
  Set Vung = Cells.SpecialCells(3, 23)
  Range("I2:J1000").ClearContents
  For Each Clls In Vung
    i = i + 1
    Cells(i + 1, 10) = Clls.Address(0, 0)
    Cells(i + 1, 9) = i
  Next
End Sub

Hiiiiiiiiii

Không có sách, lần mò theo code của mọi người để học mót chút đỉnh làm vốn nên vốn tăng hơi chậm

Hỏi thêm chút:
1- Cách mà For Each Clls In Vung dò tìm là thế nào vậy

2- Cách đặt vùng Set Vung = Cells.SpecialCells(3, 23) là thế nào vậy? Muốn set vùng là B5:F10 thì tham số thế nào theo cách set vùng như thế này (mình chỉ quen range("B5:F10"))
 
Lần chỉnh sửa cuối:
Upvote 0
Hiiiiiiiiii

Không có sách, lần mò theo code của mọi người để học mót chút đỉnh làm vốn nên vốn tăng hơi chậm

Hỏi thêm chút:
1- Cách mà For Each Clls In Vung dò tìm là thế nào vậy

2- Cách đặt vùng Set Vung = Cells.SpecialCells(3, 23) là thế nào vậy? Muốn set vùng là B5:F10 thì tham số thế nào theo cách set vùng như thế này (mình chỉ quen range("B5:F10"))

For Each... cũng y chang For i = 1 to.... nhưng được cái là ta không cần quan tâm đến phần từ đầu và cuối = bao nhiêu... Tóm lại có bao nhiêu thì cứ quét hết... Thứ tự quét của vòng lập kiểu này là quét từ trái sang phải rồi từ trên xuống dưới
Set Vung = Cells.SpecialCells(3, 23) tương đương với việc chọn vùng rồi Ctrl+G\Special\Formulas ...
Nếu Set Vung = Cells.SpecialCells(3, 23) thì vòng lập chỉ quét qua các cell có công thức, tiết kiệm được thời gian
Đương nhiên, bạn Set Vung = range("B5:F10") cũng chả chết "thằng Tây" nào
 
Upvote 0
Web KT
Back
Top Bottom