Phạm vi áp dụng đặt tên ô trong excel bị mờ

Liên hệ QC

chothadiem

Thành viên hoạt động
Tham gia
29/10/18
Bài viết
188
Được thích
50
Các anh chị cho em hỏi vùng phạm vi áp dụng đặt tên trong excel vủa em bị mờ không thể chỉnh sửa được.
Giờ phải vào đâu để chỉnh sủa nó có thể áp dụng trong phạm vi toàn bộ file hiện hành ạ?
2019-12-29_151910.png
 
Name không đổi được phạm vi.
Muốn đổi nó chỉ có 2 cách:
1. copy vào phạm vi khác và xoá cái cũ.
2. dùng VBA.
 
Name không đổi được phạm vi.
Muốn đổi nó chỉ có 2 cách:
1. copy vào phạm vi khác và xoá cái cũ.
2. dùng VBA.
Dạ! em cám ơn anh!
Anh có thể giúp em dùng VBA được không ạ?
Em xin được hỏi anh thêm một vấn đề:
Làm cách nào để có thể xóa hết các tên và mà các tên này liên kết đến các dữ liệu ở file ngoài (tên này hiện cũng đang sử dụng trong file hiện hành) nhưng em muốn xóa nó liên kết đến các ô trong file khác (do trong quá trình copy nên các tên đó bị liên kết đến file ngoài và các tên đó trùng nhau em phải ngồi xóa thủ công rất lâu và dễ nhầm).
Kính mong anh giúp đỡ em.
Em xin cảm ơn!
 
Chịu khó chờ bạn khác thích viết VBA đi.
Bản thân tôi không ngại thủ công. Cái câu "thủ công rất lâu" đối với các bạn là điều cần tránh, nhưng đối với tôi là thách thức cần vượt qua.
 
Chịu khó chờ bạn khác thích viết VBA đi.
Bản thân tôi không ngại thủ công. Cái câu "thủ công rất lâu" đối với các bạn là điều cần tránh, nhưng đối với tôi là thách thức cần vượt qua.
Vâng cám ơn anh! em đã vượt qua rồi, em ngồi xóa đã xong.
Nếu có thế xin được anh giúp em cách để lần sau em xử lý được tốt hơn.
 
Vâng cám ơn anh! em đã vượt qua rồi, em ngồi xóa đã xong.
Nếu có thế xin được anh giúp em cách để lần sau em xử lý được tốt hơn.
Bạn thử dùng hàm tự tạo này xem sao (Hàm này sẽ bị lỗi nếu Name không tồn tại).
Mã:
Sub ChangeScope(sName As String, Optional ByVal sSheet As String = "")
    'sName là tên name cần thay đổi Scope
    'sSheet là tên sheet cần đổi vào Scope, nếu để trống thì phạm vi áp dụng toàn workbook.
    Dim s As Name, Diachi As String
    Set s = Names(sName)
    Diachi = s.RefersTo
    s.Delete
    If sSheet <> "" Then
        ActiveWorkbook.Worksheets(sSheet).Names.Add Name:=sName, RefersTo:=Diachi
    Else
        ActiveWorkbook.Names.Add Name:=sName, RefersTo:=Diachi
    End If
End Sub
Áp dụng hàm như sau:
Mã:
Call ChangeScope("TenName", "Sheet1")
'Đổi phạm vi name "TenName" sang phạm vi áp dụng là "Sheet1"
Call ChangeScope("TenName")
'Đổi phạm vi name "TenName" sang phạm vi áp dụng là toàn Workbook
 
Bạn thử dùng hàm tự tạo này xem sao (Hàm này sẽ bị lỗi nếu Name không tồn tại).
Mã:
Sub ChangeScope(sName As String, Optional ByVal sSheet As String = "")
    'sName là tên name cần thay đổi Scope
    'sSheet là tên sheet cần đổi vào Scope, nếu để trống thì phạm vi áp dụng toàn workbook.
    Dim s As Name, Diachi As String
    Set s = Names(sName)
    Diachi = s.RefersTo
    s.Delete
    If sSheet <> "" Then
        ActiveWorkbook.Worksheets(sSheet).Names.Add Name:=sName, RefersTo:=Diachi
    Else
        ActiveWorkbook.Names.Add Name:=sName, RefersTo:=Diachi
    End If
End Sub
Áp dụng hàm như sau:
Mã:
Call ChangeScope("TenName", "Sheet1")
'Đổi phạm vi name "TenName" sang phạm vi áp dụng là "Sheet1"
Call ChangeScope("TenName")
'Đổi phạm vi name "TenName" sang phạm vi áp dụng là toàn Workbook
Xin cảm ơn anh.
 
Web KT
Back
Top Bottom