Vba 实现此代码的粘贴链接

Vba 实现此代码的粘贴链接,vba,excel,Vba,Excel,我有这个代码,它允许从任何工作表复制自定义范围,并将其粘贴到工作表2上的固定范围。这段代码可以工作,但我需要在这段代码中实现粘贴链接功能,这样,如果我想对数据库中的数据进行任何更改,它也会在第2页中自动更新。这是我到目前为止所做的代码。先谢谢你 Sub CustomizedInputFixedoutput() Dim rng As Range, _ inp As Range, _ ws As Worksheet Set inp = Selection On Error Resume

我有这个代码,它允许从任何工作表复制自定义范围,并将其粘贴到工作表2上的固定范围。这段代码可以工作,但我需要在这段代码中实现粘贴链接功能,这样,如果我想对数据库中的数据进行任何更改,它也会在第2页中自动更新。这是我到目前为止所做的代码。先谢谢你

Sub CustomizedInputFixedoutput()


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.Parent.Activate
    rng.Copy
    Sheets("Sheet 2").Range("B2:N5").Value = rng.Value
End If
Application.CutCopyMode = False

End Sub
Sub-CustomizedInputFixedoutput()
变暗rng作为范围_
inp作为靶场_
ws-As工作表
设置inp=选择
出错时继续下一步
设置rng=Application.InputBox(“复制到”,类型:=8)
错误转到0
如果TypeName(rng)“范围”,则
MsgBox“已取消”,VBS信息
出口接头
其他的
rng.Parent.Activate
收到
图纸(“图纸2”)。范围(“B2:N5”)。值=参考值
如果结束
Application.CutCopyMode=False
端接头

在这里复制范围:

在这里,您将B2:N5的值指定为与
rng
相同的值

问题是代码没有从剪贴板粘贴任何内容!您不需要
。复制
任何内容即可分配这样的单元格值

使用该方法而不是指定值(这样,
.Copy
将起作用),并将可选参数
Links
设置为
True
,如下所示:

Worksheets("Sheet 2").Range("B2:N5").Select
Worksheets("Sheet 2").Paste Links:=True

我确信这一定是重复的,但搜索[excel vba]粘贴链接发现一些问题没有任何可接受的答案,也没有符合粘贴到特定范围的OP愿望的问题

Option Explicit

Sub CustomizedInputFixedoutput()
Dim CopyRng As Range
Dim PasteRng As Range
Dim Msg As String
Dim Response As VbMsgBoxResult


    Set CopyRng = Selection
    On Error Resume Next
    Set PasteRng = Application.InputBox("Select a cell to copy to", Type:=8)
    On Error GoTo 0
    If Not PasteRng Is Nothing Then 'user clicked Cancel
        If PasteRng.Count > 1 Then
            'Get confirmation to paste to multi-cell range
            Msg = "Are you sure you want to paste to " & PasteRng.Address & "?" _
            & vbCrLf & vbCrLf _
            & "Results may be unexpected if you proceed."
            Response = MsgBox(Msg, vbQuestion + vbYesNo, "Confirm multi-cell paste range")
        End If
        If Response = vbYes Or PasteRng.Count = 1 Then
            CopyRng.Copy
            PasteRng.Parent.Activate
            PasteRng.Activate
            ActiveSheet.Paste Link:=True
        Else
            MsgBox "Cancelled", vbInformation
        End If
    Else
        MsgBox "Cancelled", vbInformation
    End If
    Application.CutCopyMode = False
End Sub

我认为您不能在工作表中同时使用Destination:和Link:参数。粘贴方法。获取方法类的选择范围失败。选择行:/@Niva我目前手头没有VBA。您可以选择/激活要粘贴到的范围,然后使用
工作表。粘贴链接:=True
执行粘贴。仍然无法诊断此问题。海斯;/这么近还这么远!所以我无法粘贴到特定区域?可以,但如果选择的粘贴区域不止一个单元格,并且与所选区域的大小不完全相同,则可能无法复制整个选定区域,或者可能会有单元格显示0以下。^^^这就是。请注意,该行为与手动粘贴时相同。是的,但问题是我要粘贴的数据仅为B列和D列。在这种情况下,我必须对范围进行硬编码。选择要复制的单元格并运行代码,选择要粘贴到Sheet2上的单个单元格。然后在Sheet2上选择多个单元格,查看发生了什么。
Worksheets("Sheet 2").Range("B2:N5").Select
Worksheets("Sheet 2").Paste Links:=True
Option Explicit

Sub CustomizedInputFixedoutput()
Dim CopyRng As Range
Dim PasteRng As Range
Dim Msg As String
Dim Response As VbMsgBoxResult


    Set CopyRng = Selection
    On Error Resume Next
    Set PasteRng = Application.InputBox("Select a cell to copy to", Type:=8)
    On Error GoTo 0
    If Not PasteRng Is Nothing Then 'user clicked Cancel
        If PasteRng.Count > 1 Then
            'Get confirmation to paste to multi-cell range
            Msg = "Are you sure you want to paste to " & PasteRng.Address & "?" _
            & vbCrLf & vbCrLf _
            & "Results may be unexpected if you proceed."
            Response = MsgBox(Msg, vbQuestion + vbYesNo, "Confirm multi-cell paste range")
        End If
        If Response = vbYes Or PasteRng.Count = 1 Then
            CopyRng.Copy
            PasteRng.Parent.Activate
            PasteRng.Activate
            ActiveSheet.Paste Link:=True
        Else
            MsgBox "Cancelled", vbInformation
        End If
    Else
        MsgBox "Cancelled", vbInformation
    End If
    Application.CutCopyMode = False
End Sub