ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 83952|回复: 85

VBA代码宝- 代码库商店

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2018-11-6 22:50 | 显示全部楼层 |阅读模式
本帖最后由 konggs 于 2018-11-6 23:12 编辑

大家有什么好的私有  代码宝库,且有分享精神的可以放到这里来分享。

若想合作放到VBA代码宝工具中的,也可以先优先放到这里让大家先试用试用。

评分

6

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-11-6 23:04 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-11-7 11:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我的代码库都是抄的,不敢传,怕侵权

TA的精华主题

TA的得分主题

发表于 2018-11-9 15:49 | 显示全部楼层
Sub theBatchPrint()     Dim arr As Variant, theFinalRow&, theStr$, i&, j&, brr() As Variant     theFinalRow = Cells(Rows.Count, 10).End(xlUp).Row     arr = Range(Cells(2, 10), Cells(theFinalRow, 14))     ReDim brr(1 To 1, 1 To UBound(arr, 2))     For i = 2 To UBound(arr)         theStr = arr(i, 1)         If theStr <> "" Then             For j = 1 To 5                 brr(1, j) = arr(i, j)             Next j         End If         Cells(2, 1).Resize(, 5) = brr         ActiveSheet.PrintPreview '实际使用时用ActiveSheet.PrintOut         DoEvents     Next i End Sub  Sub theSpaceBarPrint()     Dim arr As Variant, theFinalRow&, theStr$, i&, j&, brr() As Variant     theFinalRow = Cells(Rows.Count, 10).End(xlUp).Row     arr = Range(Cells(2, 10), Cells(theFinalRow, 14))     ReDim brr(1 To 1, 1 To UBound(arr, 2))     For i = 2 To UBound(arr)         theStr = arr(i, 1)         If theStr <> "" Then             For j = 1 To 5                 brr(1, j) = arr(i, j)             Next j         End If         Cells(2, 1).Resize(, 5) = brr         MsgBox "请按空格键继续打印……", vbOKOnly, "确认打印"         ActiveSheet.PrintPreview '实际使用时用ActiveSheet.PrintOut         DoEvents     Next i End Sub

TA的精华主题

TA的得分主题

发表于 2018-11-9 15:50 | 显示全部楼层
Sub 打印()
    qs = [I1]: zs = [I2] '起始、张数
    If zs Mod 2 = 0 Then zs1 = zs Else zs1 = zs - 1
    For i = 1 To zs1 Step 2      '打印到偶数张
        [e4] = qs + i - 1: [e19] = qs + i
        ActiveSheet.PrintPreview
        'ActiveSheet.PrintOut
    Next
    If zs > zs1 Then      '奇数张,最后打印半张
        [e4] = qs + zs - 1
        [a16:e24] = ""   '清空下半张
        ActiveSheet.PrintPreview
        'ActiveSheet.PrintOut
        [a1:e9].Copy [a16:e24]    '恢复下半张
    End If
End Sub

TA的精华主题

TA的得分主题

发表于 2018-11-9 15:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sub 提取照片属性()
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    If fd.Show = -1 Then GetDirectory = fd.SelectedItems(1)
    Dim Item As Long, RowCount As Long, i As Long
    Dim FileName As Object, ObjShell As Object, ObiFolder As Object
    Set ObjShell = CreateObject("shell.Application")
    Set ObiFolder = ObjShell.Namespace(GetDirectory)
    On Error Resume Next
    Application.ScreenUpdating = False
        RowCount = 1
       For Each FileName In ObiFolder.Items
        Item = 0
        RowCount = RowCount + 1
        For i = 0 To 33
            If i < 6 Or i = 12 Or (i > 29 And i < 33) Then
                Item = Item + 1
                Cells(RowCount, Item) = ObiFolder.getdetailsof(FileName, i)
                If RowCount = 2 Then Cells(1, Item) = ObiFolder.getdetailsof(ObiFolder.Items, i)
            End If
        Next i
    Next FileName
    Set fd = Nothing
    Application.ScreenUpdating = True
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-11-9 15:51 | 显示全部楼层
Private Sub 打印全部数据_Click()   
  
config = vbYesNo + vbQuestion + vbDefaultButton1   
  
ans = MsgBox("你确认打印全部数据吗?", config, "如风达")   
  
    If ans = vbYes Then   
  
     Dim A&, B&, C&, D$, E$,R1&, C1&, R2&, C2&, R3&, C3&, R4&, C4&, SF$   
  
  '当前工作表名  

   SF = ActiveSheet.Name     

   '打印明细的最后列,行     
  
   R1 = Sheets("打印明细").UsedRange.Rows.Count     
  
   C1 = Sheets("打印明细").UsedRange.Columns.Count   
  
   '参数的最后列,行   

   R2 = Sheets("参数").UsedRange.Rows.Count   

   C2 = Sheets("参数").UsedRange.Columns.Count  

      '更新打印位置对应列   
  
     For B = 2 To R2   
  
       Sheets("参数").Cells(B, 5) = ""  
  
           For A = 1 To C1   
  
              If Sheets("参数").Cells(B, 4).Text = Sheets("打印明细").Cells(1, A).Text Then   
  
               Sheets("参数").Cells(B, 5) = A   
  
               End If   
  
           Next   
  
        Next         
  
   '查询指定订单的信息  

       For R4 = 2 To R1  

           For A = 2 To R2  

              If Sheets("参数").Cells(A, 5).Text <> "" Then  

              '生成明细列   
  
               C4 = Sheets("参数").Cells(A, 5).Text   
  
              '生成目标对应行列   
  
               R3 = Sheets("参数").Cells(A, 2).Text   
  
               C3 = Sheets("参数").Cells(A, 3).Text                     
  
               ActiveSheet.Cells(R3, C3).Value = Sheets("打印明细").Cells(R4, C4).Text                 
  
             End If   
  
           Next   
  
          ActiveSheet.PrintOut From:=1, To:=1            
  
        Next      
  
     MsgBox "打印完成!", vbInformation   
  
  If ans = vbNo Then   
  
  Exit Sub   
  
End If     
  
End If   
  
End Sub  

TA的精华主题

TA的得分主题

发表于 2018-11-9 15:52 | 显示全部楼层
Private Sub 打印全部数据_Click()   
  
config = vbYesNo + vbQuestion + vbDefaultButton1   
  
ans = MsgBox("你确认打印全部数据吗?", config, "如风达")   
  
    If ans = vbYes Then   
  
     Dim A&, B&, C&, D$, E$,R1&, C1&, R2&, C2&, R3&, C3&, R4&, C4&, SF$   
  
  '当前工作表名  

   SF = ActiveSheet.Name     

   '打印明细的最后列,行     
  
   R1 = Sheets("打印明细").UsedRange.Rows.Count     
  
   C1 = Sheets("打印明细").UsedRange.Columns.Count   
  
   '参数的最后列,行   

   R2 = Sheets("参数").UsedRange.Rows.Count   

   C2 = Sheets("参数").UsedRange.Columns.Count  

      '更新打印位置对应列   
  
     For B = 2 To R2   
  
       Sheets("参数").Cells(B, 5) = ""  
  
           For A = 1 To C1   
  
              If Sheets("参数").Cells(B, 4).Text = Sheets("打印明细").Cells(1, A).Text Then   
  
               Sheets("参数").Cells(B, 5) = A   
  
               End If   
  
           Next   
  
        Next         
  
   '查询指定订单的信息  

       For R4 = 2 To R1  

           For A = 2 To R2  

              If Sheets("参数").Cells(A, 5).Text <> "" Then  

              '生成明细列   
  
               C4 = Sheets("参数").Cells(A, 5).Text   
  
              '生成目标对应行列   
  
               R3 = Sheets("参数").Cells(A, 2).Text   
  
               C3 = Sheets("参数").Cells(A, 3).Text                     
  
               ActiveSheet.Cells(R3, C3).Value = Sheets("打印明细").Cells(R4, C4).Text                 
  
             End If   
  
           Next   
  
          ActiveSheet.PrintOut From:=1, To:=1            
  
        Next      
  
     MsgBox "打印完成!", vbInformation   
  
  If ans = vbNo Then   
  
  Exit Sub   
  
End If     
  
End If   
  
End Sub  

TA的精华主题

TA的得分主题

发表于 2018-11-9 17:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
liuyuanqing 发表于 2018-11-9 15:51
Sub 提取照片属性()
    Dim fd As FileDialog
    Set fd = Application.FileDialog(msoFileDialogFolde ...

这个好,赞

TA的精华主题

TA的得分主题

发表于 2018-11-9 17:29 | 显示全部楼层
liuyuanqing 发表于 2018-11-9 15:50
Sub 打印()
    qs = : zs =  '起始、张数
    If zs Mod 2 = 0 Then zs1 = zs Else zs1 = zs - 1

这个没看懂,我刚学最基础的。求解释下,怎么操作
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-22 09:49 , Processed in 0.051777 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表