vba函数复制一个单元格并粘贴到我写入的活动单元格= macrofunction

在制作vba函数时,我想简单地复制一个固定的单元格,并将其值粘贴到同一工作表中突出显示的单元格(所选单元格我input的macros函数)。 这个工程,当我从编辑器中运行macros,但使公式macros不适用于粘贴单元格的单元格我正在写函数英寸如果我写在C2 = macropasteC1其中我的macros被称为macropastec1我得到#NAME而不是C1中的数字,虽然当我用vba编辑器select的c2运行macros时,它确实工作,虽然我失去了确切的公式

这是类似的东西

'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)。select,但与上述类似。 我开始通过录制它,然后我插入macros复制它,并改变子function获得macrosfunction

请帮助我真的需要这个能力

另一个在编辑器中用来激活一个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` 

因为你需要一个macros函数来从一个单元格内运行= =函数

这是很难复制,但我认为我想要实现它清楚的jist

对不起,这没有真正的答案,但它确实澄清了什么被问

c1中的macros函数,如果从一个不断变化的单元格就是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

 Function macropastec2() macropastec2 = Range("C1").Value End Function 

在进入一个单元格时给出= macropastec2(C1)

 #VALUE Function macropastec2() As varient macropastec2 = Range("C1").Value End Function 

 #NAME 

:S如果有帮助,我认为原来的function可以简化为类似的东西

 'function macropastec1() macropastec1 Macro Selection.Copy range.("C1").Select activecell.PasteSpecial Paste:=xlPasteValues**, End function` 

你可以使用这个function:

 Function macropastec1() As Variant macropastec1 = Range("C1").Value End Function 

如果你需要指定一个特定的表格,你可以在函数中join:

 Function macropastec1() As Variant macropastec1 = Sheets("SheetName").Range("C1").Value End Function 

VBA模块应该是这样的: 在这里输入图像说明

当您更改C1时,此function不会更新单元格值。

你可以在任何单元格中使用它:

 =macropastec1() 

示范:

1)在单元格A1中input=macropastec1() 在这里输入图像说明

2a)如果我们改变C1:

在这里输入图像说明

2b)A1不变:

在这里输入图像说明

3a)如果我们现在在A2中input=macropastec1()

在这里输入图像说明

3b)我们看到新的价值,而第一个价值保持不变:

在这里输入图像说明

在制作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 
  1. 该子只在您决定运行时运行
  2. 您必须先select目标单元格
  3. 如果C1包含公式,则目标单元格将获得该值。

记住

工作表单元格中的UDF只能将值返回到其所在的单元格。 它不能更改工作表中的其他单元格。