在制作vba函数时,我想简单地复制一个固定单元格,并将其值粘贴到同一工作表中突出显示的单元格(选中的单元格,我输入宏函数)。当我从编辑器中运行宏但是使用公式的宏不能将单元格粘贴到我正在编写函数的单元格时,这是有效的。如果我写入C2 = macropasteC1 我的宏叫做macropastec1 我得到#NAME而不是C1中的数字 虽然当我在vba编辑器中选择c2运行宏时,虽然我丢失了确切的公式
但它确实有效就像是
'Sub macropastec1()
macropastec1 Macro
Selection.Copy
cell("C1").Select
active.PasteSpecial Paste:=xlPasteValues**,Operation:=xlNone,SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False**
End Sub`
我不记得究竟是怎么得到它的范围。(C1)。选择 但它与上面类似。我开始记录它然后我插入宏复制它并更改子功能以获得宏功能
请帮助我真的需要这种能力
另一个在编辑器中用于激活cel并在编辑器中运行的变体我认为是
'function macropastec1()
macropastec1 Macro
Selection.Copy
range.("C1").Select
activecell.PasteSpecial Paste:=xlPasteValues**,Operation:=xlNone,SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False**
End function`
obvioulsy因为你需要一个宏函数来从一个带有= function
的单元格中运行它很难复制,但我认为我想要实现的目标明确
抱歉,这并没有真正回答,但它确实澄清了被问到的问题c1中的宏功能,如果来自不断变化的单元格,则说c3 所以在c1我有
Function Min_Cell2(cx34 As Range)
'Function for defining the lowest number in a cell selected by the user
If Minimum <> "" Then
If Value_Range.Value < Minimum Then Minimum = Value_Range.Value
Else
Minimum = Value_Range.Value
End If
Min_Cell = Minimum
End Function
或最大等价物。所以我需要它来粘贴特殊值而不更新它..
我认为偶然的功能就是这个
Function macropastec2()
macropastec2 = Range("C1").Value
End Function
给出 进入一个单元格= macropastec2(C1)
#VALUE
Function macropastec2() As varient
macropastec2 = Range("C1").Value
End Function
给出
#NAME
:S 如果它有帮助我认为原始功能可以简化为类似
'function macropastec1()
macropastec1 Macro
Selection.Copy
range.("C1").Select
activecell.PasteSpecial Paste:=xlPasteValues**,
End function`
答案 0 :(得分:2)
您可以使用以下功能:
Function macropastec1() As Variant
macropastec1 = Range("C1").Value
End Function
如果您需要指定特定工作表,可以在函数中添加:
Function macropastec1() As Variant
macropastec1 = Sheets("SheetName").Range("C1").Value
End Function
VBA模块应如下所示:
更改C1
时,此功能不更新单元格值。
您可以通过以下方式在任何单元格中使用它:
=macropastec1()
1)在单元格A1中输入=macropastec1()
:
2a)如果我们改变C1:
2b)A1 不更改:
3a)如果我们现在在A2中输入=macropastec1()
:
3b)我们看到新值,而第一个值保持不变:
答案 1 :(得分:1)
在制作vba功能时,我想简单地复制一个固定的单元格 将其值专门粘贴到同一工作表中突出显示的单元格。
在标准模块中包含以下内容:
Public Function macropastec1(r As Range)
macropastec1 = r.Value
End Function
您可以使用工作表,如:
修改#1:强>
如果你想要控制复制/粘贴,请使用 Sub 而不是 UDF()
在同一标准模块中包含以下 Sub :
Public Sub macropastSC1()
Range("C1").Copy
ActiveCell.PasteSpecial (xlPasteValues)
End Sub
请记住:
工作表单元格中的 UDF 只能将值返回到它所在的单元格。它无法更改工作表中的其他单元格。