1

我想将链接从一张纸粘贴到另一张纸上

Range("A1:D1").Select
Range("D1").Activate
Selection.Copy
Sheets("Sheet2").Select
ActiveSheet.Paste Link:=True

但是,代码会使工作表从 Sheet1 切换到 Sheet2。无论如何,我可以在不切换工作表的情况下粘贴链接吗?

谢谢。

4

6 回答 6

2

这将起作用:

ThisWorkbook.Worksheets("Sheet2").Range("D1").Formula = "=Sheet1!D1"
于 2012-04-04T02:37:31.427 回答
1

我想这就是你正在尝试的?

Sub Sample()
    Dim i As Long
    For i = 1 To 4
        Sheets("Sheet2").Cells(1, i).Formula = "=Sheet1!" & _
                Split(Cells(, i).Address, "$")(1) & "1"
    Next i
End Sub
于 2012-04-04T10:35:14.290 回答
0

此代码将与您的代码片段执行相同的操作,而无需更改活动工作表。

Range("A1:D1").Copy
Worksheets("Sheet2").Paste Link:=True

请注意,这(和您的代码)将从活动工作表中复制。如果要从活动工作表以外的工作表复制,请使用类似

Worksheets("Sheet1").Range("A1:D1").Copy
Worksheets("Sheet2").Paste Link:=True
于 2012-04-04T10:50:04.150 回答
0

我刚才也遇到了同样的问题。那时我才意识到,当我尝试运行我的代码时,TightVNC 已连接到另一台机器。当我关闭它时,代码照常运行。

发生这种情况可能是因为某些软件可能正在控制您的剪贴板。只需关闭您不需要的任何东西,例如 VNC 或虚拟机。

于 2015-09-04T07:18:08.327 回答
-1

如果不选择工作表,您的 LINK 愿望将无法完成。但是你可以让它做这件事的事实是肉眼看不见的。

Option Explicit

Sub test()
    Application.ScreenUpdating = False

    Sheets("Sheet1").Range("A1:D1").Copy
    With Sheets("Sheet2")
        .Activate
        .Range("A1").Select
        ActiveSheet.Paste Link:=True
    End With
    Sheets("Sheet1").Activate

    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub
于 2012-04-04T05:33:31.743 回答
-1

您可以使用Application.ScreenUpdating = False ,然后在粘贴完成后将其返回为 true。

例子:

Application.ScreenUpdating = False
Worksheets("Sheet1").Range("D1").Copy    
Worksheets("Sheet2").Activate   
Range("Range You Want To Paste").Select    
ActiveSheet.PasteSpecial Link:=True  
Worksheets("Sheet1").Activate
Range("A Range You Want Active").Activate   
Application.ScreenUpdating =true
于 2018-03-28T17:37:17.380 回答