【问题标题】:excel vba to copy row with activex buttonexcel vba用activex按钮复制行
【发布时间】:2017-05-27 08:31:12
【问题描述】:

我不是 excel 方面的专家,所以不知道如何做到这一点。

我有一个要求。将有一个按钮(添加按钮),它将添加一个新行。 此现有工作表包含带有数据的行,并且在 A 列上有一个 ActiveX 按钮(验证按钮 - 每个按钮都有一个代码)。

所以当我点击添加按钮时,它会在底部添加一行,在 A 列中添加一个 Activex 按钮(验证按钮),并在后端添加针对它的代码。

您能告诉我如何实现这一目标吗?

Excel 工作表示例图片:https://ibb.co/cijovv

我编写的代码只添加了一行,但无法复制 A 列上的 ActiveX 按钮和后端的代码。

添加行代码:

Private Sub CommandButton1_Click()

Dim Lr As Integer
Dim newLr As Integer
Dim lim As String

Lr = Range("A" & Rows.Count).End(xlUp).Row 'Searching last row in column A
newLr = Lr + 1
lim = "B" & newLr & ":" + "D" & newLr
Application.CopyObjectsWithCells = True
Rows(Lr).Copy
Rows(newLr).Insert
'Range(lim).ClearContents
Application.CopyObjectsWithCells = False

End Sub

【问题讨论】:

  • 每一行的验证是否相同?
  • @Romel Geluz 是的。验证按钮的代码将针对每一行自动更新 D、E 列。相同的代码将在那里,但它只会更新受尊重的行。
  • 您也可以发布您的代码吗?
  • 使用 ActiveX 控件而不是表单控件有什么原因吗?如果您使用哪个控件并不重要,您所要做的就是将一个按钮(来自表单控件)插入到所需的位置,并为其分配一个宏(在后端使用您的术语对它的代码)。当您在不更改任何内容的情况下运行代码时,分配给它的按钮和宏也会被复制。
  • 任何事情对我来说都可以实现这一点。如果你让我知道替代解决方案以及如何做到这一点?

标签: vba excel


【解决方案1】:

1-将按钮从表单控件插入到单元格A5

2-在 sub 中获取您的验证代码(您可以随意命名)

Sub MyValidateButtonCode() 
'here goes your validate button code 
MsgBox "It works!" 
End Sub

3-将宏分配给单元格 A5 中的按钮

4-单击 CommandButton1(添加行按钮)并运行上述代码以复制行。

【讨论】:

  • 我试过这个,但仍然无法复制按钮。除了按钮列 A 之外,它正在复制的其余内容。
  • 我已经使用下面的方法来复制它,但又遇到了另一个问题。无法将按钮的名称属性从“验证”更改为新行上的其他内容。 Application.ScreenUpdating = False Sheets(sht).Shapes("validate").Copy Sheets(sht).Activate Sheets(sht).Range(rng).Select Sheets(sht).Paste Sheets(sht).Shapes("validate ").Select Selection.Characters.Text = btn Application.ScreenUpdating = True
  • @iamnew 不要更改您的复制代码。它工作正常。如果您无法复制按钮,请尝试以下操作:右键单击按钮并选择剪切。然后单击单元格A5,右键单击它并选择粘贴。然后再次尝试您的代码。
猜你喜欢
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2017-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多