将粘贴链接复制到用户输入的单元格引用

时间:2015-01-18 11:45:52

标签: excel excel-vba vba

我犯了很多数据输入错误,我正试图想出一种方法来验证我的输入。我将值从单元格复制到另一个单元格,我认为最好是直接链接到单元格,然后将这些单元格自动着色。

以下是我的建议:

Selection.Copy
Selection.Interior.ColorIndex = 37

Set rng = Application.InputBox("Cell reference", Type:=8)

现在我无法找到将链接粘贴到输入单元格引用的方法。看起来通过选择带有输入框的单元格,选择将丢失。

2 个答案:

答案 0 :(得分:1)

因此,您想要选择一个单元格并根据其他单元格内容更改其内容,对吧?您正在使用set语句创建对源单元格的引用。现在,您只需使用范围的.address属性来获取字符串值,该值表示宏语言中的范围引用(请参阅此属性的帮助)。

Option Explicit
Sub CopyingCellContents()

Dim rng As Range

Selection.Copy
Selection.Interior.ColorIndex = 37

Set rng = Application.InputBox("Cell reference", Type:=8)
Selection.Value = activesheet.range(rng.Address)

End Sub

提示:始终在代码中设置“要求变量声明”。

考虑到您的进一步解释和您自己的代码,我尝试更新您的代码。

Sub xxx

Dim rng As Range
Dim inp As Range
Dim Sh as worksheet 'Worksheet where your range is.

set Sh= workbooks("Name Of The Workbook").worksheets("Name Of The Worksheet")

Set inp = Selection
inp.Interior.ColorIndex = 37

Set rng = Application.InputBox("Copy to", Type:=8)

sh.activate
inp.Copy Destination:=rng, Link:=True

End sub

更改"工作簿的名称"和"工作表的名称"通过工作簿的名称和工作表分别您要操作的范围。不要忘记使用""。

答案 1 :(得分:0)

我重写了一些代码。这是:

Dim rng As Range
Dim inp As Range


Selection.Interior.ColorIndex = 37
Set inp = Selection

Set rng = Application.InputBox("Copy to", Type:=8)
inp.Copy

rng.Select

ActiveSheet.Paste Link:=True

似乎有效,谢谢!