我目前正在处理一个Excel文档,我想单击一个单元格,然后弹出一个带有更多命令按钮选项的框。当用户单击用户表单中的按钮之一时,它将把A:G的该行的选择移到另一张纸上。我将有多行内容,并希望进行代码调整以适应初始命令的发起方。我有第一个按钮,用户表单已完成,并且运行良好。问题在于复制,粘贴和删除行的下一组按钮。这是我到目前为止所拥有的。任何帮助将不胜感激。
Private Sub FireChief_Click()
Dim i As Long: i = 1
Dim n As Long
Dim nLastRow As Long
Dim lastRow As Integer
With ActiveSheet
For n = nReference To nLastRow Step 1
ActiveSheet.UsedRange
Set r = ActiveSheet.UsedRange
nLastRow = r.Rows.Count + r.Row + 1
Set Reference = Selection
Next Copy_to_Range()
ActiveWorksheets.Range("Reference").Copy
Destination = Worksheets("Fire Chief").Range("nLastRow")
Worksheets("Fire Chief").Columns("A:G").AutoFit
End Sub
因此,我没有使用上面列出的代码,而是尝试使用提供的一些输入对它进行重新处理。基本上,这将以某种方式像Access文档一样工作,并且当单击按钮时,它将为最终用户完成所有工作。我在消防部门工作,想让那些必须使用它的人更轻松。我必须处理10张纸,一旦找出一张纸,我将重写以匹配另一张纸。新代码如下
Option Explicit
Sub BaseFireMarshal_Click()
End Sub
Sub FireChief_Click()
Dim i As Long: i = 1
Dim n As Long
Dim nLastRow As Long
Dim lastRow As Integer
Dim B As Integer
Dim R As Range
Set R = Sheet5.Range("A2:G999")
If Worksheets("ActiveSheet").Range("A:XFD").Copy_ = True Then
Dim continue As Boolean
continue = True
If continue = True Then
Worksheets("Sheet5").Activate
B = Worksheets("Sheet5").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("Sheet5").Cells(B + 1, 1).Select
ActiveSheet.Paste
Worksheets("Fire Chief").Columns("A:G").AutoFit
Worksheets("Sheet5").Deactivate
End If
If Application.CutCopyMode = False Then
ThisWorkbook.Worksheets("ActiveSheet").Cells(1, 1).Select
End If
End Sub
Private Sub cmdClose_Click()
Unload Me
End Sub
答案 0 :(得分:0)
我想单击一个单元格,然后弹出一个带有更多命令按钮选项的框。
您可以通过“数据”标签中的分组列来完成此操作。本质上,它折叠/扩展了工作表的一部分。
按钮,它会将A:G的那一行内容移至另一张纸上
剪切并粘贴
想编写代码以适应初始命令的发起方
要在您的VBA代码中使用“ selection.column”或“ selection.row”。
这是我到目前为止所拥有的。
对于您的代码,我从不使用命名范围。我总是使用range(cells(row,column),cells(row,column))因为它是动态的。
尝试这样做,然后再回来找我们。