Я начинаю понимать, что этот код не будет достаточно динамичным для того, для чего он использует его. То, что я хочу сделать, это изменить код, чтобы вместо обращения к определенному столбцу по номеру RC он фактически ссылается на него по имени заголовка.VBA, чтобы ссылаться на заголовок, а не на конкретный столбец
Просто пытаясь дать ясность с этим. Конечный результат этого кода выглядит так просто: PRESTIGE WORLDWIDE INC./123 TacoTaco DR
Адрес разбит на 3 разных столбца, которые содержат код RC-103 102 101.
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, и у вас есть планы сделать это, вероятно, ближе к 1000 раз в нескольких электронных таблицах, чтобы дать вам все масштабы. Я знаю, что ответы могут отличаться, когда речь идет о нескольких строках кода, а не о сотнях.
Благодарим вас за тонну за любую помощь. Этот сайт уже был поразительно полезен, и я получил полное 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