我想将链接从一张纸粘贴到另一张
Range("A1:D1").Select
Range("D1").Activate
Selection.Copy
Sheets("Sheet2").Select
ActiveSheet.Paste Link:=True
但是,代码会使工作表从Sheet1切换到Sheet2。无论如何我可以粘贴链接而不切换表格吗?
感谢。
答案 0 :(得分:1)
这将有效:
ThisWorkbook.Worksheets("Sheet2").Range("D1").Formula = "=Sheet1!D1"
答案 1 :(得分: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
答案 2 :(得分:0)
此代码将与您的代码段完全相同,而不会更改活动工作表。
Range("A1:D1").Copy
Worksheets("Sheet2").Paste Link:=True
请注意,此(和您的代码)将从活动工作表中复制。如果要从活动工作表以外的工作表进行复制,请使用
之类的内容Worksheets("Sheet1").Range("A1:D1").Copy
Worksheets("Sheet2").Paste Link:=True
答案 3 :(得分:0)
我刚才遇到了同样的问题。我刚刚意识到,当我试图运行我的代码时,TightVNC已连接到另一台机器。当我关闭它时,代码照常运行。
可能会发生这种情况,因为某些软件可能会控制您的剪贴板。只需关闭您不需要的任何内容,例如VNC或虚拟机。
答案 4 :(得分:0)
您可以使用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
答案 5 :(得分:-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