我犯了很多数据输入错误,我正试图想出一种方法来验证我的输入。我将值从单元格复制到另一个单元格,我认为最好是直接链接到单元格,然后将这些单元格自动着色。
以下是我的建议:
Selection.Copy
Selection.Interior.ColorIndex = 37
Set rng = Application.InputBox("Cell reference", Type:=8)
现在我无法找到将链接粘贴到输入单元格引用的方法。看起来通过选择带有输入框的单元格,选择将丢失。
答案 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
似乎有效,谢谢!