为此代码实现粘贴链接

时间:2015-12-18 03:01:52

标签: excel vba excel-vba

我有这个代码允许从任何工作表复制自定义范围并将其粘贴到工作表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

2 个答案:

答案 0 :(得分:2)

我确信这必须是重复的,但搜索[excel-vba]粘贴链接发现了几个问题,没有任何可接受的答案,没有任何与OP匹配的愿望粘贴到特定范围。

using namespace std;
#include <iostream>;
#include <string>;
string output = "|";
string topBoard[9][9];

int main() {
    for (int i = 0; i < 9; i++) {
        for (int ii = 0; ii < 9; ii++) {
            topBoard[i][ii] = "empty";
        }
    }
    for (int ii = 0; ii < 9; ii++) {
        cout << "-----------------------------------------------------------------";
        output = "|";
        for (int i = 0; i < 9; i++) {
            output = output + topBoard[ii][i] + "|";
        }
        cout << output;
    }
    return(0);
};

答案 1 :(得分:1)

在此复制范围:

rng.Copy

此处您将B2:N5的值指定为与rng相同的值。

Sheets("Sheet 2").Range("B2:N5").Value = rng.Value

问题是该代码不是粘贴剪贴板中的任何内容!您不需要.Copy任何内容来分配像这样的单元格值。

使用Worksheet.Paste方法而不是分配值(然后.Copy将用于其目的),并将可选参数Links设置为True,如下所示:

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