私は、このコードがそれを使用しているものに対して十分に動的ではないことに気付き始めています。私が探しているのは、RC番号で特定の列を参照するのではなく、ヘッダーの名前で実際に参照するようにコードを変更することです。特定の列ではなくヘッダーを参照するVBA
これを明確にしようとしています。このコードの最終結果は、次のように簡単になります。 PRESTIGE WORLDWIDE INC。/ 123 TacoTaco DR
住所はコード内でRC-103 102 101の3つの異なる列に分かれています。
Sub ProjectName()
Dim ws As Excel.Worksheet
Set ws = ActiveWorkbook.Sheets("Macro Time") ' change to name of your sheet
Dim x As Long
x = 2 '************CHANGE BACK TO 2********************
Do Until ws.Cells(x, 7) = ""
With ws.Cells(x, 120)
.Value = "=iferror(""""&RC[-86]&""/""&RC[-103]&"" ""&RC[-102]&"" ""&RC[-101]&"""",)"
.Value = .Value
End With
x = x + 1
Loop
End Sub
どのように私はこれを動作させることができるかに関するアイデアはありますか?私はいくつかの方法を試してみて、すべてで失敗しました。この時点で、私はあなたがこれを行う方法に関するいくつかのアイデアをするならば、 "フロアを開く"ことを望んでいました。明らかに、私はこれを行う最も簡単な方法が欲しいです。ちょっとした背景として、私はこれを約300の別個のRC値にする必要があります。そして、おそらく、あなたにすべてのスケールを与えるために、複数のスプレッドシートでこれを1,000回以上行う予定です。何百というコードではなく、2行のコードについて話すときに答えが異なることがあることは分かっています。
ご協力いただきありがとうございます。このサイトは既に驚くほど役立っており、私は完全なnoobieです。
Sub ProjectName()
Application.ScreenUpdating = False
Dim ws As Excel.Worksheet
Set ws = ActiveWorkbook.Sheets("Macro Time") ' change to name of your sheet
Dim projectCell As Range ' Project Name
Dim amlCell As Range ' AML_PROV_PATH
Dim ultCustNameCell As Range ' ULTIMATE_CUST_NAME
Dim sanoCell As Range ' SANO
Dim sasnCell As Range ' SASN
Dim sathCell As Range ' SATH
Set projectCell = FINDCOLUMN("Project Name")
Set amlCell = FINDCOLUMN("AML_PROV_PATH")
Set ultCustNameCell = FINDCOLUMN("ULTIMATE_CUST_NAME")
Set sanoCell = FINDCOLUMN("SANO")
Set sasnCell = FINDCOLUMN("SASN")
Set sathCell = FINDCOLUMN("SATH")
Dim x As Long
x = 2 '************CHANGE BACK TO 2********************
Do Until ws.Cells(x, amlCell.Column) = ""
With ws.Cells(x, projectCell.Column)
.Value = "=iferror(""" & ws.Cells(x, ultCustNameCell.Column).Text & "/" _
& ws.Cells(x, sanoCell.Column).Text & " " _
& ws.Cells(x, sasnCell.Column).Text & " " _
& ws.Cells(x, sathCell.Column).Text & """ ,)"
.Value = .Value
End With
x = x + 1
Loop
Application.ScreenUpdating = True
End Sub
これが答えです。私は誰とでも分かち合うべきだと思った。ご協力ありがとうございました。
[この質問はおそらく関連している。](http://stackoverflow.com/q/39755639/4088852) – Comintern