ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

EH搜索     
EH云课堂-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 EH云课堂直播课程免费学 打造核心竞争力的职场宝典
300集Office 2010微视频教程 Tableau-数据可视化工具 精品推荐-800套精选PPT模板,点击获取 ExcelHome出品 - VBA代码宝免费下载
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 Excel VBA经典代码实践指南
查看: 21506|回复: 42

VBA代码宝- 代码库商店

  [复制链接]

TA的精华主题

TA的得分主题

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

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

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

TA的精华主题

TA的得分主题

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

TA的精华主题

TA的得分主题

发表于 2018-11-7 11:43 | 显示全部楼层

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 | 显示全部楼层
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

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 | 显示全部楼层
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, 2020-2-17 06:26 , Processed in 0.377361 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2020 Wooffice Inc.

   

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

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

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