Excel에서 지명 된 참조의 생성을 자동화하려면 어떻게해야합니까? 나는 모든 행의 첫 번째 필드가 내 참조가되기를 원합니다.

StackOverflow https://stackoverflow.com/questions/627377

  •  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에있는 값 (텍스트)으로 설정합니다.

도움이 되었기를 바랍니다!

마이크

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top