2017-11-29 21 views
-2

ソースシートからターゲットテーブルに行をコピーしたいと思います。値をコピーすることは問題ありません。Excel VBAセルからテーブル内の列へのハイパーリンクをコピー

ソースシートの列Aには、Webサイトへのハイパーリンクが含まれています。
ハイパーリンクもコピーしたいと思います。

ただし、このコードはエラー(型の不一致)を示します。

Sub Copy_Hyperlink() 
    Dim ActiveSheet As Worksheet 
    Dim ActiveTable As ListObject 
    Dim Row_Number As Integer 
    Dim Last_Row As Integer 
    Dim ActiveRow As ListRow 
    Dim Hyperlink As Hyperlink 
    Set ActiveSheet = Sheets("Sheet2") 
    Set ActiveTable = ActiveSheet.ListObjects("Table1") 
    Set ActiveSheet = Sheets("Sheet1")  

    ActiveSheet.Activate 
    Last_Row = ActiveSheet.Cells(Cells.Rows.Count, 1).End(xlUp).Row 

    For Row_Number = 2 To Last_Row 
     Set ActiveRow = ActiveTable.ListRows.Add 
     ActiveRow.Range(1, 1).Value = Range("A" & Row_Number).Value 
     ActiveRow.Range(1, 2).Value = Range("B" & Row_Number).Value 
     ActiveRow.Range(1, 2).Hyperlinks.Add Range _ 
    ("A" & Row_Number).Hyperlinks.Item(1).Address 
    Next Row_Number 
End Sub 
+4

どの回線でエラーが発生していますか? – ashleedawg

+1

注: 'Row_Number'と' Last_Row'は 'Integer'ではなく' Long'型でなければなりません。 Excelは 'Integer'よりも多くの行を処理できます。私は[Integerの代わりにLongを使う](https://stackoverflow.com/a/26409520/3219613)をお勧めします! –

答えて

0

あなたのコードでは、いくつかの問題がありますが、説明や応答なしに私たちはあなたに決定的な答えを与えることができなくなります。

ハイパーリンクを追加する以外はすべて正常に動作しているとは確信していませんが、は、というハイパーリンクを追加してコードを再実行する行があることを確認できます。

' ActiveRow.Range(1, 2).Hyperlinks.Add Range("A" & Row_Number).Hyperlinks.Item(1).Address 

コードが正常に機能する場合は、まだいくつかの問題がある可能性があります。

私はあなたがおそらくハイパーリンクを持っていないセルからハイパーリンクを取得しようとしている(ただし、あなたのデータを共有していなかったので、私は知らない。)あなたがHyperlinks.Countを使用できるようにした場合を前提と使用可能なリンクがあるかどうかを確認します。

あなたは間違ってHyperlink.Addを使用しています。

ここで続きを読む:https://msdn.microsoft.com/en-us/vba/excel-vba/articles/hyperlinks-add-method-excel?f=255&MSPPError=-2147217396質問を編集して詳細を追加してください。

+1

また、[ツアー]だけでなく[質問]と[mcve]もチェックしてください。 – ashleedawg

+1

Thanxは、アンカーを追加することになりました。 'ActiveRow.Range(1,1).Hyperlinks.Add Anchor:= ActiveRow.Range(1,1)、Address:= Range( "A"&Row_Number)。ハイパーリンク。項目(1)。アドレス ' – Guido

関連する問題