粘贴链接VBA代码不起作用

我的粘贴链接似乎并没有工作,并给我一个范围类select方法失败在指定的行。 我似乎无法诊断这个错误。

Sub CustomizedInputFixedoutputnotworking() Dim rng As Range, _ inp As Range, _ ws As Worksheet Set inp = Selection On Error Resume Next Set rng = Application.InputBox("Copy to", Type:=8) On Error GoTo 0 If TypeName(rng) <> "Range" Then MsgBox "Cancelled", vbInformation Exit Sub Else Worksheets("Sheet 2").Range("B2:N5").Select ' Code does not work at this line Worksheets("Sheet 2").Paste Links:=True End If Application.CutCopyMode = False End Sub 

试试这个代码:

 Sub CustomizedInputFixedoutputnotworking() Dim rng As Range, _ inp As Range, _ ws As Worksheet Set inp = Selection On Error Resume Next Set rng = Application.InputBox("Copy to", Type:=8) On Error GoTo 0 If TypeName(rng) <> "Range" Then MsgBox "Cancelled", vbInformation Exit Sub Else rng.Copy ' add this line to copy the range that user selected before (with InputBox) Worksheets("Sheet 2").Activate ' add this line to activate the target worksheet, because select method (the next line) only work in the active sheet Range("B2:N5").Select ActiveSheet.Paste Link:=True End If Application.CutCopyMode = False End Sub 

注意:如果用户select不连续的范围(例如A1和B2),复制方法将会失败,简单的方式(不是完整的方式)避免使用:

 Set rng = Union(rng, rng) If rng.Areas.Count > 1 Then Exit Sub 

我相信你的问题是,你select的文字,但从来没有复制到剪贴板。 即使你拷贝了, .Select方法也会改变你的目的地。

我希望对.Copy方法进行简单的更改可以解决您的问题。 如果没有,请告诉我:

 Worksheets("Sheet2").Range("B2:N5").Copy Worksheets("Sheet2").Paste Link:=True 

– 编辑 –

根据所选范围是“复制”(来源)和B2:N5是目的地的评论,请尝试以下操作:

 rng.Copy Worksheets("Sheet2").Range("B2:N5").Select Worksheets("Sheet2").Paste Link:=True