Muốn hiện "name" định nghĩa (1 người xem)

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

tranvanhung2009

Thành viên hoạt động
Tham gia
1/3/11
Bài viết
128
Được thích
18
Em chào cả nhà.
Hiện nay em có 1 thắc mắc nhỏ.
Em có 1 file cell.
Trong file cell đó có rất nhiều ô được định nghĩa được bằng các name
Cau hỏi của em là: làm cách nào để mình trích xuất được các name đó sang ô cell bên phải tương ứng với các name đó không ạ
 
Em chào cả nhà.
Hiện nay em có 1 thắc mắc nhỏ.
Em có 1 file cell.
Trong file cell đó có rất nhiều ô được định nghĩa được bằng các name
Cau hỏi của em là: làm cách nào để mình trích xuất được các name đó sang ô cell bên phải tương ứng với các name đó không ạ
Bạn dùng từ "trích xuất" nghe có vẻ khó hiểu.
Có phải bạn muốn hiện tên của name tương ứng tại cột B?
Bạn đặt công thức tại B3=_s tương tự với các name còn lại cho B4, B5
Sau đó nhấn Ctrl+~ sẽ hiện tên name tại B3, B4, B5
Bây giờ muốn xóa dấu = phí trước tên name là tùy bạn!
 
Upvote 0
Bạn dùng từ "trích xuất" nghe có vẻ khó hiểu.
Có phải bạn muốn hiện tên của name tương ứng tại cột B?
Bạn đặt công thức tại B3=_s tương tự với các name còn lại cho B4, B5
Sau đó nhấn Ctrl+~ sẽ hiện tên name tại B3, B4, B5
Bây giờ muốn xóa dấu = phí trước tên name là tùy bạn!
Làm cách của bạn có vẻ không ổn lắm, vì cách này là làm thủ công. Giả sử người ta đặt khoảng 100 name thì sao??>
 
Upvote 0
Bạn dùng từ "trích xuất" nghe có vẻ khó hiểu.
Có phải bạn muốn hiện tên của name tương ứng tại cột B?
Bạn đặt công thức tại B3=_s tương tự với các name còn lại cho B4, B5
Sau đó nhấn Ctrl+~ sẽ hiện tên name tại B3, B4, B5
Bây giờ muốn xóa dấu = phí trước tên name là tùy bạn!

Em không hiểu cái này ứng dụng để làm gì nhỉ?
 
Upvote 0
Mình muốn kiếm tra xem giá trị của những name có công thức xem có chuẩn không thôi. Vì file cell của mình có đến gần 100 name. Lại không biết name đó nằm ở vị trí nào. Muốn biết name phải vào định nghĩa name để xem địa chỉ.
 
Upvote 0
Các name đó đã được đặt sẵn. Ý mình là muốn biết địa chỉ của ô của các name đó. Sau khí biết rồi thì điền các name đó sang ô bên phải
 
Upvote 0
Em không hiểu cái này ứng dụng để làm gì nhỉ?
Bạn đọc yêu cầu của bài #1 chưa?
"ứng dụng" là cái gì? để làm ra cái gì?
Ở đây tôi chỉ chỉ ra các bước thực hiện để hiện name ở file bài #1.

Làm cách của bạn có vẻ không ổn lắm, vì cách này là làm thủ công. Giả sử người ta đặt khoảng 100 name thì sao??>
bao nhiêu (1 nghìn, 1 tỷ) name thì cũng vậy thôi.

Mình muốn kiếm tra xem giá trị của những name có công thức xem có chuẩn không thôi. Vì file cell của mình có đến gần 100 name. Lại không biết name đó nằm ở vị trí nào. Muốn biết name phải vào định nghĩa name để xem địa chỉ.
1) Chính bạn đã tự trả lời bởi dòng màu xanh
2) Nhấn "Trả Lời Với Trích Dẫn" để biết bạn trả lời hay hỏi ai
3) Địa chỉ của các name đó bạn nói đến ở #6 không phải là nhấn Ctrl+F3 sẽ thấy sao.
Diễn giải của bạn thật lủng củng khó hiểu.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Em chào cả nhà.
Hiện nay em có 1 thắc mắc nhỏ.
Em có 1 file cell.
Trong file cell đó có rất nhiều ô được định nghĩa được bằng các name
Cau hỏi của em là: làm cách nào để mình trích xuất được các name đó sang ô cell bên phải tương ứng với các name đó không ạ
Thế trường hợp 1 Name nào đó tham chiếu đến cả một vùng thì đặt cái kết quả ở ô nào trong "một vùng cells bên phải" đó? Hoặc trường hợp Name động (được tạo thành bởi công thức, có thể không tham chiếu đến 1 ô/vùng cụ thể) thì sao?

Tôi đề xuất một phương án để bạn tham khảo: Sử dụng code sau để liệt kê tên và công thức của các Name có trong Workbook:
[GPECODE=vb]Sub HienDSName()
Dim Nm As Name
Sheets(1).Activate
[A2:B65000].Clear
For Each Nm In ThisWorkbook.Names
[A65000].End(xlUp).Offset(1) = Nm.Name
[A65000].End(xlUp).Offset(, 1).NumberFormat = "@"
[A65000].End(xlUp).Offset(, 1) = Nm.RefersTo
Next
End Sub[/GPECODE]
 

File đính kèm

Upvote 0

Cau hỏi của em là: làm cách nào để mình trích xuất được các name đó sang ô cell bên phải tương ứng với các name đó không ạ

Mục đích cuối cùng của bạn là gì?
- Muốn học VBA thông qua bài tập?
- Muốn ứng dụng vào việc khác? Nếu là cái này thì việc khác ấy là việc gì?
Thông thường, nếu biết được mục đích, người ta sẽ viết code tốt hơn, thậm chí cũng có thể tìm ra được cách khác tốt hơn
(vì file giả lập của bạn chẳng thực tế chút nào)
 
Upvote 0
Đúng là cái em cần rồi. Nhưng em muốn nó hiện lên tại ô được định nghĩa có được không anh?
 
Upvote 0
Làm như bạn cũng làm 1 cách.
Nhưng cách này không ổn lắm. Vì làm như vậy mất nhiều thời gian. Hơn nữa lại phải copy tên của name để điền sang ô bên phải tương ứng.
Cái em cần 1 đoạn code để thực hiện việc này. Em phải kiểm tra nhiều file nên khối lượng công việc tương đối nhiều. Nếu mình được được địa chỉ đặt tên name thì mình chỉ cân kiểm tra giá trị ở ô name đó.

Chẳng hạn em lấy ví dụ: ô A1 được đặt tên name là SS có giá trị là 50.000; ô A2 có tên name là RR có giá trị là 50.000
Ở ô A3 có công thức là: =ss+rr và có đáp số 100.000.

Nếu biết vị trí name có phải là tiện hơn phải không bác
 
Upvote 0
Chẳng hạn em lấy ví dụ: ô A1 được đặt tên name là SS có giá trị là 50.000; ô A2 có tên name là RR có giá trị là 50.000
Ở ô A3 có công thức là: =ss+rr và có đáp số 100.000.
Nếu biết vị trí name có phải là tiện hơn phải không bác
Mục đích của việc đặt Name là để tính toán cho gọn và dễ nhớ. Đặt Name không nhớ hết thì đặt làm gì cho mất công? Tự gây khó dễ cho mình.

Sau đó nhấn Ctrl+~ sẽ hiện tên name tại B3, B4, B5
Vì dấu ~ và ` nằm trên 1 phím, đúng ra là Ctrl+`, mục đích là để hiện công thức.
 
Upvote 0
Đúng là cái em cần rồi. Nhưng em muốn nó hiện lên tại ô được định nghĩa có được không anh?
Thử cái này
PHP:
Sub ShowNameInf()
Dim N As Name
For Each N In ThisWorkbook.Names
  Range(Right(N, Len(N) - InStr(N, "!"))) = N.Name
  Range(Right(N, Len(N) - InStr(N, "!"))).Offset(, 1) = N
Next
End Sub
 
Upvote 0
Cái em cần 1 đoạn code để thực hiện việc này. Em phải kiểm tra nhiều file nên khối lượng công việc tương đối nhiều. Nếu mình được được địa chỉ đặt tên name thì mình chỉ cân kiểm tra giá trị ở ô name đó.

Chẳng hạn em lấy ví dụ: ô A1 được đặt tên name là SS có giá trị là 50.000; ô A2 có tên name là RR có giá trị là 50.000
Ở ô A3 có công thức là: =ss+rr và có đáp số 100.000.

Nếu biết vị trí name có phải là tiện hơn phải không bác
Với yêu cầu của bạn thì các name chỉ tham chiếu đến một ô đơn nào đó thôi, còn nếu các name này tham chiếu đến một vùng nào đó (nhiều hơn 1 ô) hoặc name động, không trỏ tới 1 vùng cụ thể thì bó tay.
 
Upvote 0
thanh anh nhiều. Anh ơi, giờ em muốn cái tên name nó hiện sang bên phải. Còn "=Sheet1!$B$7" hiện sang ô bên phải +1 nữa được không anh?
 
Upvote 0
thanh anh nhiều. Anh ơi, giờ em muốn cái tên name nó hiện sang bên phải. Còn "=Sheet1!$B$7" hiện sang ô bên phải +1 nữa được không anh?
Vậy thì sửa lại code của anh quanghai1969 một chút xíu là được:
[GPECODE=vb]Sub ShowNameInf()
Dim N As Name
For Each N In ThisWorkbook.Names
Range(Right(N, Len(N) - InStr(N, "!"))).Offset(, 1) = N.Name
Range(Right(N, Len(N) - InStr(N, "!"))).Offset(, 2) = N
Next
End Sub[/GPECODE]
 
Upvote 0
Vậy nếu nhấn F3, sau đó nhấn nút paste link thì có được không nhỉ?
 
Upvote 0
Đây chính là đáp số mà đầu bài em cần. Cám các anh nhiều lắm ạ
 
Upvote 0
Đây chính là đáp số mà đầu bài em cần. Cám các anh nhiều lắm ạ
"Đây" là cái chỗ nào vậy ta? Ở dưới mỗi bài viết đều có nút Trả lời với trích dẫn đó bạn. Bạn muốn trả lời bài nào thì nên trích dẫn bài đó trong bài viết chứ viết thế này làm tôi mừng hụt...
 
Upvote 0
Vậy thì sửa lại code của anh quanghai1969 một chút xíu là được:
[GPECODE=vb]Sub ShowNameInf()
Dim N As Name
For Each N In ThisWorkbook.Names
Range(Right(N, Len(N) - InStr(N, "!"))).Offset(, 1) = N.Name
Range(Right(N, Len(N) - InStr(N, "!"))).Offset(, 2) = N
Next
End Sub[/GPECODE]


Em cám ơn. Đây chính là đáp số của em anh ạ.
 
Upvote 0
Hiện name file excell

Vậy thì sửa lại code của anh quanghai1969 một chút xíu là được:
[GPECODE=vb]Sub ShowNameInf()
Dim N As Name
For Each N In ThisWorkbook.Names
Range(Right(N, Len(N) - InStr(N, "!"))).Offset(, 1) = N.Name
Range(Right(N, Len(N) - InStr(N, "!"))).Offset(, 2) = N
Next
End Sub[/GPECODE]

Anh ơi, code này có tác dụng với rất nhiều file em đã làm. Nhưng đến file này thì bó tay.
Các anh giúp em hiện Name file này ra với.
E cám ơn nhiều!
 
Upvote 0
Thế trường hợp 1 Name nào đó tham chiếu đến cả một vùng thì đặt cái kết quả ở ô nào trong "một vùng cells bên phải" đó? Hoặc trường hợp Name động (được tạo thành bởi công thức, có thể không tham chiếu đến 1 ô/vùng cụ thể) thì sao?

Tôi đề xuất một phương án để bạn tham khảo: Sử dụng code sau để liệt kê tên và công thức của các Name có trong Workbook:
[GPECODE=vb]Sub HienDSName()
Dim Nm As Name
Sheets(1).Activate
[A2:B65000].Clear
For Each Nm In ThisWorkbook.Names
[A65000].End(xlUp).Offset(1) = Nm.Name
[A65000].End(xlUp).Offset(, 1).NumberFormat = "@"
[A65000].End(xlUp).Offset(, 1) = Nm.RefersTo
Next
End Sub[/GPECODE]

cám ơn nghiaphuc....
cái này bữa giờ mình đang nghiên cứu...
Quá chuẩn!
 
Upvote 0

File đính kèm

Upvote 0
Ý mình là muốn nó hiện name lên nhưng mà tên name nằm bên phải ô định nghĩa name. Chứ không phải nó hiện hẳn list name như thế này bác ạ

có lẽ nào (viết khác không đạt) mục tiêu là chỉ hiện các name của cột M (cột thứ 13) nên code sửa lại như sau,

Mã:
Sub HienDSName()
Dim Nm As Name, rn As Range
On Error Resume Next
For Each Nm In ThisWorkbook.Names
Set rn = Nothing
Set rn = Range(Nm.Name)
If Not rn Is Nothing And rn.Column = 13 Then rn.Offset(, 1) = Nm.Name
Next
Err.Clear
End Sub
 
Upvote 0

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

Back
Top Bottom