0

次の点でサポートが必要です。

同じ構造のワークシートがいくつかあり、各ワークシート内に2つの列(XとYと呼びます)があり、それらのセル値(文字と数字の組み合わせ)とともにコピーし、列AFの値を独自のシートにコピーする必要があります。 XとYの場合。

「新しい」シートで、X / Yを列Aに配置し、Aの後に値を並べ替え、Aの各セル値に一定のハイパーリンクを付加します。したがって、XまたはYはAに、AFはBGに移動します。

次に、列Fまたは新しいGをクリック可能にして、対応するワークシートの行に移動できるようにします。XとYが常にX列またはY列にあるとは限りませんが、これは「名前検索」で解決できると思います。

コードを実行すると、たとえば、worksheet3がworksheet1の値を上書きし、ハイパーリンク構造も間違っています。ソートは機能しているため、省略されています。

Function CopyAndSort(ByRef mySheet As Worksheet)
'   If mySheet.Name <> "Sheet1" Then
'   Exit Function
'   End If

   mySheet.Activate
    Set sheetCS = Sheets("CopyAndSort Sheet")
    sheetCS.Range("A:A").Value = ""
   lastRowCS = Range("X:X").Cells.Find("*", , , , , xlPrevious).Row

     rowNumber = 1
    For rowCopy = 5 To lastRowFO
        sheetCopy = Range("BE" & rowCopy)
        If Trim(sheetCopy) <> "" Then
            sheetCopy = Replace(sheetCopy, """", "")
            If InStr(1, sheetCopy, ",", vbTextCompare) <> 0 Then
               sheetCopyArray = Split(sheetCopy, ",")
            Else
               sheetCopyArray = Array(sheetCopy)
      End If

            For Each copy In sheetCopyArray

                rowNumber = rowNumber + 1

                        copy_Value = copy
' test for url                         
'  sheetCS.Cells(rowNumber, 1).Formula = "=HYPERLINK(""ConstURL & copyValue"")"

                     sheetCS.Cells(rowNumber, 1) = copy_Value
                        copy_Value = Cells(rowCopy, 1)
                            sheetCS.Cells(rowNumber, 2) = copy_Value
                        copy_Value = Cells(rowCopy, 2)
                            sheetCS.Cells(rowNumber, 3) = copy_Value
                        copy_Value = Cells(rowCopy, 3)
                            sheetCS.Cells(rowNumber, 4) = copy_Value
                            copy_Value = Cells(rowCopy, 4)
                            sheetCS.Cells(rowNumber, 5) = copy_Value
                        copy_Value = Cells(rowCopy, 5)
                            sheetCS.Cells(rowNumber, 6) = copy_Value

            Next
        End If

    Next 

では、どうすれば値を上書きせず、正しいハイパーリンク構文を添付し、さらに列Gをクリック可能にすることができますか?また、XとYに1つの関数を使用できますか?いくつかのコード例は私を大いに助けてくれるでしょう。ありがとうございました。

更新

XとYは常に隣り合っていることを忘れました。

例:

Sheet1:

|ColA|ColB|ColC|ColD|ColF|....|ColX|ColY|

Sheet2:ここで「ColX」はColQにあり、ColYはColRにあります

|ColA|ColB|ColC|ColD|ColF|....|ColXinColQ|ColYinColR|

CopySheet_of_X:Sheet1のColXとColA-ColFをコピーし、XがColQにあるSheet2についても同じことを行います。

両方のシートの出力: | ColX | ColA | ColB | ColC | ColD | ColF |

CopySheet_of_Y:Sheet1のColYとColA-ColFをコピーし、YがColRにあるSheet2についても同じことを行います。

両方のシートの出力: | ColY | ColA | ColB | ColC | ColD | ColF |

ハイパーリンク:したがって、ColXとColYの値は、先行するハイパーリンクと連結する必要があります。ColXのセルの値が「someValue1」の場合、myurl:// sometext=someValue1に変換する必要があります。

そして、ColFをクリックしたときに行に戻る正しい方法がわかりません。

4

1 に答える 1