VB.NET 开发Excel插件功能大全
下面是【E达通】工具箱的按钮功能源码

想要获取 【E达通工具箱】 的朋友可以关注微信公众号,回复 E达通 领取
想要学习 E达通工具箱源码的朋友可以继续 点击更多往下看...
Private Sub 深度隐藏工作表按钮_Click(sender As Object, e As RibbonControlEventArgs) Handles 深度隐藏工作表按钮.Clickapp.ActiveSheet.viseble = 2MsgBox("隐藏成功!")End sub
Private Sub 备份工作簿按钮_Click(sender As Object, e As RibbonControlEventArgs) Handles 备份工作簿按钮.Clickapp.ActiveWorkbook.SaveAs(app.ActiveWorkbook.Path & "\" & app.ActiveWorkbook.Name & "-备份" & Format(Now, "yyyy-mm-dd -HH-MM-SS") & ".xls")MsgBox("备份成功,备份在原工作簿文件夹下")End Sub
Private Sub 提取工作簿批注按钮_Click(sender As Object, e As RibbonControlEventArgs) Handles 提取工作簿批注按钮.ClickDim sht As Excel.WorksheetDim pz As Excel.CommentDim arr(), brr()Dim i& = 0For Each sht In app.ActiveWorkbook.WorksheetsFor Each pz In sht.CommentsReDim Preserve arr(0 To i) '保留原有数据,重新定义数组下标ReDim Preserve brr(0 To i) '保留原有数据,重新定义数组下标brr(i) = sht.Name '提取工作表arr(i) = pz.Text '提取批注i += 1NextNextDim 开始输出单元格 As Excel.Range = app.InputBox("请选择开始输出单元格", Type:=8)开始输出单元格.Resize(UBound(brr) + 1, 1).Value = app.WorksheetFunction.Transpose(brr)开始输出单元格.Offset(0, 1).Resize(UBound(arr) + 1, 1).Value = app.WorksheetFunction.Transpose(arr)End Sub
Private Sub 提取有效性表达式按钮_Click(sender As Object, e As RibbonControlEventArgs) Handles 提取有效性表达式按钮.ClickOn Error GoTo line1 '错误跳转,没有设置的时候判断就会出现错误----此时跳转到 line1Dim myrange As Excel.RangeDim 输出 As Excel.Range = app.InputBox("请选择输出单元格", "提示", Type:=8)Dim arr() '定义一维数组Dim brr(,) '定义一维数组myrange = app.InputBox("请选择有效性单元格", "提示", , , , , , 8)If myrange.Validation.Type >= 0 Then '不存在有效性时,使用myrange会报错,跳转结束输出.Value = myrange.Validation.Formula1 '获取到有效性序列的表达式,如果是选择单元格表达式$A$1:$A$10,则需要再加工End Ifline1: MsgBox("该单元格没有设置有效性,无数据可提取!", vbCritical, "提取有效性序列") : Exit SubEnd Sub
Private Sub 单元格内容导入批注按钮_Click(sender As Object, e As RibbonControlEventArgs) Handles 单元格内容导入批注按钮.ClickOn Error Resume NextDim rng As Excel.Range = app.InputBox("请选择导入区域", Type:=8)For Each rg As Excel.Range In rngWith rgIf MsgBox("是否追加写入?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes ThenDim pz As String = rg.Comment.Text '提取批注.ClearComments() '删除批注.AddComment.Text(pz & Chr(10) & rg.Value) '把内容导入批注Else.ClearComments() '删除批注.AddComment.Text(rg.Value) '把内容导入批注End IfEnd WithNextMsgBox("导入完成!")End Sub