현재 명명 된 범위의 탭 내에서 작업하고 있습니다. 그들은 모두 클래스 1과 연관되어 있습니다.이 셀을 두 번 복제하여 클래스 2와 클래스 3에 동일한 열을 생성하고 싶습니다. 명명 된 범위는 다음 두 클래스에 대해 _2/_3과 별개로 유지되어야합니다. 또한 각 열에서 수식을 수정해야하지만 올바른 접미사 (_2/_3)가 포함되어야합니다.명명 된 범위 중복/수식 변경
이 더 나은 내가 뭘하려고하는지 설명하기 위해 단순화 된 버전입니다 :
**Class 1**
Lives
Age
Adjust
Claim
Risk
**Class1 Class2 Class3**
Lives Lives_2 Lives_3
Age Age_2 Age_3
Adjust Adjust_2 Adjust_3
Claim Claim_2 Claim_3
Risk Risk_2 Risk_3
을 이들은 이름을 대표하는 세포의; 그들 모두는 또한 각 클래스 내에서 연결하는 수식을 포함합니다. 이미 완료된 클래스 1 영역에는 9 개의 열과 120 개의 행이 있습니다. 나는 18 클래스 3 다음 다음 (9)에 열 (10)을 채우는 클래스 두 싶습니다 난 그냥 이름을 변경하려고하는 작업 된 코드는하지만 실패했습니다 :
Sub ChangeNames()
Dim OldName As String
Dim NewName2 As String
Dim NewName3 As String
Dim rng As Range
For r = 1 To 127
For c = 1 To 10
If IsNamedRange(Cells(r, 1 + c)) Then
Set rng = Sheets("Medical").Cells(r, 1 + c)
OldName = rng.Name
NewName2 = OldName & "_2"
NewName3 = OldName & "_3"
Sheets("Medical").Cells(r, 11 + c).Name = NewName2
Sheets("Medical").Cells(r, 21 + c).Name = NewName3
End If
Next c
Next r
End Sub
Function IsNamedRange(MyRange) As Boolean
Dim vntName As Variant
On Error Resume Next
IsNamedRange = MyRange.Name <> ""
Exit Function
End Function
VBA에서도 가능합니까? 어떤 도움을 많이 주시면 감사하겠습니다!
서브 이름() 어둡게은 문자열로 어둡게 oldname을가 문자열로 어둡게 NewName2은 문자열로 어둡게 NewName3는 문자열 희미한는
For Each this In Workbook.names
If Range(this).Worksheet = "Medical" Then
NewName2 = Range(this).Name & "_2"
NewName3 = Range(this).Name & "_3"
x = Range(this).Column
y = Range(this).Row
Sheets("Medical").Cells(x, 10 + y).Name = NewName2
Sheets("Medical").Cells(x, 20 + y).Name = NewName3
End If
Next this
최종 서브
* VBA *로 가능합니까? - 예. * 그러나 나는 실패했습니다 * - 당신이 일하지 않는 것에 대해 정교하게한다면, 우리는 당신을 더 많이 도울 수 있습니다. –
위 코드를 실행할 때; 이전 이름 변수는 셀 이름 인 Med_Prod 대신 "= Medical! $ b $ 3"값을 갖습니다. 셀 위치가 아닌 이름 범위를 반환하려면 어떻게해야합니까? 더 명확히 할 필요가 있다면 – Brian
은 시트 레벨이나 통합 문서 레벨에 정의 된 이름입니까? –