2017-04-13 74 views
0

我使用Excel 2013並希望用VBA實現目標。在列最後一行添加超鏈接

我有一個工作表(Table1),一個FileDialog和一個AddHyperlink函數。我想要做的是將超鏈接添加到列A的第一個空行中的工作表。

Sub addLink() 

Dim ws As Worksheet 

Dim rng As Range 

Set ws = Sheets("Tabelle1") 

Dim fd As FileDialog 
Dim selectedPaths() As String 
Dim I As Integer 

Set fd = Application.FileDialog(msoFileDialogOpen) 

Set rng = Sheets("Tabelle1").Range("A1") 

With fd 
    .AllowMultiSelect = True 
    .Title = "Select your File(s)" 
    .InitialFileName = "" 
    If .Show = -1 Then 
     ReDim selectedPaths(.SelectedItems.Count - 1) 
     For I = 0 To .SelectedItems.Count - 1 
      selectedPaths(I) = .SelectedItems(I + 1) 
      With ws 
      .Hyperlinks.Add Anchor:=rng, Address:=selectedPaths(I) 
      End With 
     Next I 
    End If 
End With 

Set fd = Nothing 

End Sub 

此代碼正在工作並且表現良好。唯一不能構建的是最後一行。我看到,我需要像這樣的東西

Sub LastRowInOneColumn() 
Dim LastRow As Long 
With ActiveSheet 
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
End With 
End Sub 

任何人都可以幫我把這兩個代碼塊?提前致謝。

回答

1

而不是

Set rng = Sheets("Tabelle1").Range("A1") 

使用

With Sheets("Tabelle1") 
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row 
    Set rng = .Cells(LastRow + 1, "A") 
End With 
+0

完美的作品。我是否明白這是正確的,你設置LastRow =最後一行的值,並設置rng =最後一行的值+ 1來獲得下一行? – andrklein123

+0

是的,它'LastRow'意味着最後一次使用的行 –