Excel에서 지명 된 참조의 생성을 자동화하려면 어떻게해야합니까? 나는 모든 행의 첫 번째 필드가 내 참조가되기를 원합니다.
-
06-07-2019 - |
문제
내 스프레드 시트의 첫 번째 열은 고유 한 키입니다 (데이터 현명한, Excel과 관련이 없습니다). 내 열 중 하나에는 다른 행에 대한 링크가 포함되어 있습니다 (해당 행의 고유 키로). 이 하이퍼 링크를 삽입하면 행 순서가 시간이 지남에 따라 변경되므로 "정의 된 이름"을 가리켜 야합니다.
새 행을 삽입 할 때마다 정의 된 이름을 만들 필요가 없습니다. 열의 텍스트를 "정의 이름"으로 자동 정의하는 방법이 있습니까?
나는 이것이 분명하기를 바랍니다.
많은 감사합니다.
해결책 2
알았어요. Mike R.이 나를 올바른 길에 올려 놓았습니다. 감사.
이름에 대해 영숫자가 아닌 문자를 제거해야합니다. 또한 이름을 복제하면 이전 참조를 덮어 씁니다.
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Column = 1 And Target.Text <> "" And Target.Cells.Count = 1) Then
ThisWorkbook.Names.Add _
Name:=StripChar(Target.Text), _
RefersTo:=Target, _
Visible:=True
End If
End Sub
Function StripChar(s As String) As String
With CreateObject("vbscript.regexp")
.Global = True
.ignorecase = True
.Pattern = "[^\dA-Z]"
StripChar = .Replace(s, "")
End With
End Function
다른 팁
당신은 조사해야합니다 통합 문서. 이름 또는 워크 시트. 이름 (정의 된 이름을 워크 시트로 제한하려는 경우).
위의 링크에 표시된 예는 꽤 좋습니다. 귀하의 경우, 셀에서 찾은 범위 또는 범위를 사용하여 이름을 '이름'인수로 전달한 문자열로 사용될 셀에서 찾은 range.text를 사용하려고합니다.
VBA를 사용하면 다음과 같이 보일 수 있습니다.
ThisWorkbook.Names.Add _
Name:=Sheet1.Range("A1").Text, _
RefersTo:=Sheet1.Range("A:A"), _
Visible:=True
위는 열 A의 정의 된 이름을 헤더 셀 A1에있는 값 (텍스트)으로 설정합니다.
도움이 되었기를 바랍니다!
마이크
제휴하지 않습니다 StackOverflow