希望获得有关在MS-Excel上使用代码和按钮的帮助和建议

时间:2018-11-09 16:13:46

标签: excel vba excel-vba

我目前正在处理一个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

1 个答案:

答案 0 :(得分:0)

  

我想单击一个单元格,然后弹出一个带有更多命令按钮选项的框。

您可以通过“数据”标签中的分组列来完成此操作。本质上,它折叠/扩展了工作表的一部分。

  

按钮,它会将A:G的那一行内容移至另一张纸上

剪切并粘贴

  

想编写代码以适应初始命令的发起方

要在您的VBA代码中使用“ selection.column”或“ selection.row”。

  

这是我到目前为止所拥有的。

对于您的代码,我从不使用命名范围。我总是使用range(cells(row,column),cells(row,column))因为它是动态的。

尝试这样做,然后再回来找我们。