現在、名前付き範囲のタブ内で作業しています。それらはすべてクラス1に関連付けられています。これらのセルを2回複製して、クラス2と3の同じ列を作成したいとします。名前付き範囲は、次の2つのクラスに付けられた_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行を有する。
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
:私はここで、次9.私はちょうど名前を変更しようとして働いていたが、私が失敗したコードである18にコラム10を移入するには、クラス2とクラス3をしたいと思います
これはVBAで可能ですか?どんな助けでも大歓迎です! DIMが整数
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
End Subの
*これはVBAで可能ですか?はい。 *しかし私はうまくいかなかった* - あなたが働いていないものについて詳述すれば、私たちはもっとあなたを助けることができます。 –
上記のコードを実行すると、古い名前変数は、セルの名前であるMed_Prodではなく、 "= Medical!$ b $ 3"の値を持ちます。セルの場所ではなく名前の範囲を返すにはどうすればよいですか? – Brian
がシートレベルまたはブックレベルで定義されている名前であることをさらに明確にする必要があるかどうかを教えてください。 –