想在VB加入一个按钮执行表格汇总程序,加入按钮后不知道如何编写代码调用程序执行,请帮忙修改一下,谢谢!

zyqballack2008 zyqballack2008 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

VB中想增加一个按钮来执行以下程序,执行报错无法调用,请帮忙修改一下程序,感谢!

 

 

 

 

 

 

Private Sub CommandButton1_Click()
MergeSheetsFullData

End Sub

 Sub MergeSheetsFullData()
    Dim ws As Worksheet
    Dim target As Worksheet
    Dim sourceLastRow As Long, sourceLastCol As Integer
    Dim targetLastRow As Long
    
    ' 设置目标为"汇总"Sheet(需提前创建)
    Set target = ThisWorkbook.Sheets("汇总")
    Application.ScreenUpdating = False
    
    ' 清除旧数据(保留标题行)
    If target.UsedRange.Rows.Count > 1 Then
        target.Range("A2", target.Cells.SpecialCells(xlCellTypeLastCell)).ClearContents
    End If
    
    ' 遍历所有Sheet
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name <> target.Name Then
            ' 动态获取源数据范围
            sourceLastRow = GetLastRow(ws)  ' 获取实际最后一行
            sourceLastCol = GetLastColumn(ws) ' 获取实际最后一列
            
            If sourceLastRow > 1 And sourceLastCol > 0 Then
                ' 构建动态数据范围(A2到最后一列最后一行的矩形区域)
                With ws.Range(ws.Cells(2, 1), ws.Cells(sourceLastRow, sourceLastCol))
                    ' 获取目标粘贴起始位置
                    targetLastRow = target.Cells(target.Rows.Count, 1).End(xlUp).Row + 1
                    If targetLastRow = 2 And target.Range("A1").Value = "" Then targetLastRow = 1
                    
                    ' 精准复制(值+格式)
                   .Copy
target.Cells(targetLastRow, 1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
                End With
            End If
        End If
    Next ws
    
    Application.ScreenUpdating = True
    MsgBox "合并完成!共处理 " & ThisWorkbook.Sheets.Count - 1 & " 个Sheet", vbInformation
End Sub


' 获取实际最后一行(考虑所有列)
Function GetLastRow(ws As Worksheet) As Long
    On Error Resume Next
    GetLastRow = ws.Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row
    If Err.Number <> 0 Then GetLastRow = 1
    On Error GoTo 0
End Function

' 获取实际最后一列(考虑所有行)
Function GetLastColumn(ws As Worksheet) As Integer
    On Error Resume Next
    GetLastColumn = ws.Cells.Find("*", , xlFormulas, , xlByColumns, xlPrevious).Column
    If Err.Number <> 0 Then GetLastColumn = 1
    On Error GoTo 0
End Function
End Function


End Sub

 

...全文

相关推荐

VBA示例之 求人不如自已动手 Shell调用的程序执行完成后再执行其它程序

如果想设置一个超时时间,可以替换为一个正整数值。标签"shell 调用 程序 VBA VB6.0"提示我们这个示例也适用于VB6.0,因为VBA和VB6都支持Shell函数和相关的API调用。

hzg303

VB程序:数字时间显示源代码及执行文件.zip

窗体文件是Visual Basic中用于存储窗体(Form)设计信息的重要文件。窗体是VB程序中的基本组成单元,它定义了程序的外观和用户界面。每个窗体文件通常包含一个类,这个类继承自VB的Form类,它描述了窗体的属性、控件以及事件处理代码等。窗体文件的扩展名是.frm,通常在VB的集成开发环境中(IDE)进行编辑和管理。窗体文件的作用主要体现在以下几个方面:用户交互:窗体文件定义了与用户交互的界面元素,如按钮、文本框、列表框等,使用户能够通过这些界面元素与程序进行交互。界面设计。

朱昆 iamkun

VB编写“你爱不爱我?”搞笑程序及源代码

在VB中,代码通常写在Form的代码窗口里,每个控件都有自己的事件处理程序。例如,当用户点击按钮时,会触发Click事件。我们可以为这个按钮编写一个Sub过程,处理用户的输入。

wangruben1

调用浏览器程序(VB6.0源代码)调用浏览器

**设置按钮事件处理程序**:在窗体的代码视图中,找到或添加一个按钮控件,然后为它的`Click`事件编写代码。当用户点击按钮时,这段代码将被执行。

勾之月

计算器程序(VB6.0代码编写)计算器

每个按钮都可以关联一个事件处理程序,当用户点击按钮时,对应的事件会被触发。对于基础的四则运算,我们可以为每个运算符按钮编写事件处理程序。

勾之月
评论 2
收藏 已收藏
分享
返回顶部
zyqballack2008
VB 16,718 成员 110,520 内容