Вставка столбца - PullRequest
       0

Вставка столбца

0 голосов
/ 07 мая 2020

Я надеюсь, что кто-нибудь может дать мне здесь какое-нибудь руководство. Моя ситуация такова:

Один рабочий лист со 100 строками данных в таблице Каждая ячейка в столбце A содержит одно из двух значений - либо CSv1, либо CSv2 Столбец B содержит спецификатор c case_number

Я хочу вставить столбец в позиции 4 (столбец D) с меткой «Caselink». В месте D2 я пытаюсь вставить гиперссылку, которая строится на A2 и B2, где ссылка зависит от значения в обоих. (они go на два разных сайта в зависимости от столбца A). Затем, чтобы заполнить относительное расположение к номерам строк ... Вот то, что у меня есть до сих пор, но это дает мне ошибку в инструкции «Else», в которой говорится, что у меня есть «Else без If».

Если я возьму оператор else и последующую формулу и оставлю только первую формулу If, она заполнит все ячейки столбца D ссылкой для значения CSv1.

Мысли?

Sub InsertHyperlink_EscFeedback()

    With ActiveSheet
        .ListObjects(1).Name = "Drilldown"
    End With

    Dim ws As Worksheet
    Set ws = ActiveSheet
    Dim target_table As ListObject
    Set target_table = ws.ListObjects("Drilldown")
    Dim activeTable As String
    activeTable = ActiveSheet.ListObjects(1).Name  

    ActiveSheet.ListObjects(1).Range.Activate
    Selection.ListObject.ListColumns.Add Position:=4

    Range("D1") = "CaseLink"
    Range("D2").Select
    If Range("A2").Value = "CSv2" Then _
       ActiveCell.FormulaR1C1 = _
        "=HYPERLINK(""https://open.companytest.com/fredsfakeurl.aspx?conv=""&[@[case_number]]&""&st="",[@[case_number]])"

    Else

        ActiveCell.FormulaR1C1 = _
           "=HYPERLINK(""https://open.companytest.com/janesfakeurl.aspx?rdx=9992956J43211&help=""&[@[case_number]]&""&st="",[@[case_number]])"

       Range("A1").Select
    End If

    Cells.Select
    Cells.EntireColumn.AutoFit
End Sub

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Поскольку в столбце A было только два возможных значения, я смог разрешить их с помощью простого однострочного оператора IF:

ActiveCell.FormulaR1C1 = _ "= IF (RC [-3] =" " CSv1 "", ГИПЕРССЫЛКА (СЦЕПИТЬ ("" https://open.companytest.com/fredsfakeurl.aspx?rdx=9992956J43211&conv= "", RC [-2]), RC [-2]), ГИПЕРССЫЛКА (СЦЕПИТЬ ("" https://open.companytest.com/janesfakeurl.aspx?conv= "", RC [-2]), RC [-2])) "

0 голосов
/ 07 мая 2020

Попробуйте это. Вам нужно будет настроить заголовок первого столбца (CSv1 / 2)

Sub InsertHyperlink_EscFeedback()

    Const LINK1 = "HYPERLINK(""https://open.companytest.com/fredsfakeurl.aspx?conv=""&[@[case_number]]&""&st="",[@[case_number]])"
    Const LINK2 = "HYPERLINK(""https://open.companytest.com/janesfakeurl.aspx?rdx=9992956J43211&help=""&[@[case_number]]&""&st="",[@[case_number]])"

    Dim ws As Worksheet, lo As ListObject, lc As ListColumn

    Set ws = ActiveSheet
    Set lo = ws.ListObjects(1)
    lo.Name = "Drilldown"
    Set lc = lo.ListColumns.Add(Position:=4)
    lc.Name = "CaseLink"

    lc.DataBodyRange.Formula = "=IF([@[link_type]]=""CSv2""," & LINK1 & "," & LINK2 & ")"

    lo.Range.EntireColumn.AutoFit

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...