Địa chỉ của cell chứa hàm

Liên hệ QC

cuongdoannhat

Thành viên chính thức
Tham gia
27/6/09
Bài viết
67
Được thích
39
Chào các bạn.
Khi mình viết một hàm cho excel mà muốn sử dụng địa chỉ của ô chứa hàm thì phải code sao nhỉ? Giúp mình với.
Ví dụ:

Function a() as string
'Tại đây mình muốn sử dụng địa chỉ ô A1
ActiveCell.Offset(0,2).Value=123
a=1
End function

Công thức tại ô A1=a()
Như vậy ô C1 có chứa giá trị 123 không. (Thực tế là bị lỗi)
Phải khắc phục như thế nào?
 
Lần chỉnh sửa cuối:
Chào các bạn.
Khi mình viết một hàm cho excel mà muốn sử dụng địa chỉ của ô chứa hàm thì phải code sao nhỉ? Giúp mình với.
Ví dụ:

Function a() as string
'Tại đây mình muốn sử dụng địa chỉ ô A1
MsgBox(ActiveCell)
End function

Công thức tại ô A1=a()
Là sao nhỉ? Thực sự mình chưa hiểu rõ ý của bạn, bạn muốn lập cái hàm như vậy để làm gì?
Bạn thử sử dụng hàm này xem có đúng ý không, nếu trật thì... làm lại.
PHP:
Function DC(Rng As Range) As String
    DC = Rng.Address
End Function
Cú pháp: Tại một ô nào đó, bạn nhập =DC(Ô hoặc Vùng), hàm sẽ trả về địa chỉ của Ô hoặc Vùng trong dấu ngoặc.

Bạn post bài sai box rồi bạn ơi, lẽ ra bạn phải post tại box "Lập trình với Excel" mới phải! Xem chừng bài của bạn sắp bị xóa đấy!
Ờ hén... đọc bài của anh minhthien321 mới thấy bài này sai box.
 
Lần chỉnh sửa cuối:
Upvote 0
Chào các bạn.
Khi mình viết một hàm cho excel mà muốn sử dụng địa chỉ của ô chứa hàm thì phải code sao nhỉ? Giúp mình với.
Ví dụ:

Function a() as string
'Tại đây mình muốn sử dụng địa chỉ ô A1
MsgBox(ActiveCell)
End function

Công thức tại ô A1=a()
Vầy mới đúng:
PHP:
Function a() as string
   MsgBox Application.ThisCell.Address
End function
Cell mà ta gõ hàm vào chính là Application.ThisCell
 
Upvote 0
Mình muốn lấy địa chỉ của ô đang chứa hàm. Ví dụ: công thức tại ô A1=DC(M1). Trong code mình muốn lấy địa chỉ ô A1 để thao tác. Chẳng hạn ô A1 làm mốc để dùng Offset(r,c) ghi giá trị vào ô khác

To ndu96081631 : Vẫn không được! Bị lỗi #Value!

Ví dụ:
Function ka(s As String) As String
Application.ThisCell.Offset(0, 5).Value = 123
ka = 1
End Function
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Vẫn không được! Bị lỗi #Value!
Ví dụ:
Function ka(s As String) As String
Application.ThisCell.Offset(0, 5).Value = 123
ka = 1
End Function
Hàm này chắc chắn không chạy rồi
Function chỉ có khả năng trả về 1 kết quả sau quá trình tính toán nào đó mà thôi. Đằng này bạn lại dùng Function đi gán giá trị cho 1 cell khác ---> Hoàn toàn... THUA
Đã vậy, hổng biết biến s trong hàm này là cái gì nữa
Nếu có nhu cầu thì nên dùng thủ tục (Sub) chứ không được dùng hàm (Function)
 
Upvote 0
Chào các bạn.
Khi mình viết một hàm cho excel mà muốn sử dụng địa chỉ của ô chứa hàm thì phải code sao nhỉ? Giúp mình với.
Ví dụ:

Function a() as string
'Tại đây mình muốn sử dụng địa chỉ ô A1
ActiveCell.Offset(0,2).Value=123
a=1
End function

Công thức tại ô A1=a()
Như vậy ô C1 có chứa giá trị 123 không. (Thực tế là bị lỗi)
Phải khắc phục như thế nào?
Câu hỏi là: Code trên tại sao lỗi, khắc phục thế nào?
không phải là hỏi: Làm thế nào
Mà dẫu hỏi Làm thế nào, cũng không biết muốn làm gì để trả lời.

Kết luận: Hỏi không rõ ràng, trả lời không đúng ý.

Thử trả lời lại (maybe đúng ý)

1. Tại sao lỗi:

- Hàm (Function) không có tham số: Không thành vấn đề nếu như đơn giản như sau:
PHP:
Function a()
  a = 1
End Function
Lúc này, tại ô bất kỳ, gõ = a(), kết quả sẽ là 1.

- Trong 1 Function không chấp nhận các câu lệnh gán giá trị cho cell khác như câu:
PHP:
ActiveCell.Offset(0,2).Value=123

2. Làm thế nào:
Làm kí rì mới được chứ?

- Giả sử muốn lấy địa chỉ ô thì làm như ndu

- Giả sử muốn lấy 1 hằng số (1 chẳng hạn) thì làm như phần 1

- Giả sử muốn lấy giá trị 1 ô khác bất kỳ và tính toán chẳng hạn, thì hàm số phải có tham số như vầy: (chưa bẫy lỗi)
PHP:
Function GetA(bRng As Range)
  GetA = bRng.Value *2
End Function
Và phải gõ tại A1: = GetA(C1)

- Giả sử muốn lấy giá trị tại 1 ô cùng dòng và cách 1 cột thì có thể không cần tham số, như vầy:
PHP:
Function Get2A() As String
   Get2A = Application.ThisCell.Offset(0, 2) * 2
End Function
Và chỉ cần gõ tại A1: = Get2A()

- Giả sử muốn gán giá trị cho cell khác, thì dùng Sub (Thủ tục), không dùng Function (hàm)
 
Upvote 0
Web KT

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

Back
Top Bottom