ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 常用代码归集

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-13 10:08 | 显示全部楼层
Sub word基础操作汇集()
Dim wdapp As Word.Application
Dim wdoc As Document
Set wdapp = New Word.Application
dd = ThisWorkbook.Path & "\Adele\销售明细表.dotm"
Set wdoc = wdapp.Documents.Add(dd) '新建
wdapp.Visible = True
wdoc.Tables(1).Range.Cells(2).Range = "商品名称" '向单元格中写入数据
wdapp.Documents(1).SaveAs Filename:="c:\Adele.docx" '保存到C盘
wdapp.Documents.Close
wdapp.Documents.Open (ThisWorkbook.Path & "\Adele\销售明细表.docx") '打开
wdapp.Quit
Set wdapp = Nothing
Set wdoc = Nothing
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-13 10:34 | 显示全部楼层
Sub 将指定单元格的数值数据转化为对应的大写()
    Dim r1, r2, r3, r4, r5 As Range
    Dim r, c As Integer
    Set r1 = ThisWorkbook.Sheets(1).UsedRange
    Set r2 = r1.Range("G4")
    r = r2.End(xlDown).Row
    For c = 3 To r
        Set r3 = r1.Range("G" & c)
        Set r4 = r1.Range("H" & c)
        r4.Value = r3.Value
        r4.NumberFormat = "[dbnum2]"
    Next c
    Set r5 = Columns("H")
    r5.EntireColumn.AutoFit
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-13 10:44 | 显示全部楼层
Sub 删除表格中的重复记录并重填序号()
    Dim r1, r2, r3 As Range, o, n%, c%
    Set r1 = ThisWorkbook.Sheets(1).UsedRange
    Set r2 = r1.Range("B4")
    o = r2.End(xlDown).Row
    r1.RemoveDuplicates Columns:=Array(2, 3, 4, 5, 6, 7, 8, 9), Header:=xlYes
    n = r2.End(xlDown).Row
    c = o - n
    Set r3 = ThisWorkbook.Sheets(1).Range("A3:A" & n)
    With r3.Cells(1)
       .Value = 1
       .AutoFill Destination:=r3, Type:=xlFillSeries
    End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-13 10:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Sub 根据指定的打印份数打印指定工作表()
Dim sh As Worksheet
Dim x As Integer
Dim y As Variant
Set sh = ThisWorkbook.Sheets(1)
On Error GoTo tag
x = Range("D19").Value
sh.PageSetup.PrintArea = "A1:X17"
sh.PrintOut copies:=x, collate:=True, IgnorePrintAreas:=False
Set sh = Nothing
Exit Sub
tag:
y = MsgBox("设置的打印份数有误,是否重新设置?  ", vbYesNo)
If y = vbYes Then
    Call PrintOutBtn_Click
Else
    MsgBox "程序终止运行!  ", vbInformation
End If
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-13 14:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Sub 在excel中打开txt文件()
Dim myfilename  As String
myfilename = "students.txt"
Workbooks.OpenText _
    Filename:=ThisWorkbook.Path & "\" & myfilename, _
    startrow:=1, DataType:=xlDelimited, comma:=True
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-13 14:45 | 显示全部楼层
Sub excel中打开csv文件()
Dim myfilename As String
myfilename = "Adele.csv"
Workbooks.Open Filename:=ThisWorkbook.Path & "\" & myfilename
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-13 14:52 | 显示全部楼层
Sub 读取txt文本()
Dim mycnc1 As String
Dim mycnc2 As String
Dim myfilename As String
myfilename = "students.txt"
mycnc1 = "TEXT;"
mycnc2 = ThisWorkbook.Path & "\" & myfilename
With ActiveSheet.QueryTables.Add( _
    Connection:=mycnc1 & mycnc2, _
    Destination:=Range("a1"))
    .TextFilePlatform = 936
    TextFileCommaDelimiter = True
    .Refresh
End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-13 15:01 | 显示全部楼层

Sub 读取csv格式文件数据()
    Dim myCnc1 As String
    Dim myCnc2  As String
    Dim myFileName As String
    myFileName = "Adele.csv"
    myCnc1 = "TEXT;"
    myCnc2 = ThisWorkbook.Path & "\" & myFileName
    ActiveSheet.Cells.Clear
    With ActiveSheet.QueryTables.Add( _
        Connection:=myCnc1 & myCnc2, _
        Destination:=Range("A1"))
        .TextFilePlatform = 936
        .TextFileCommaDelimiter = True
        .Refresh
    End With
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-13 15:10 | 显示全部楼层
Sub 读取指定文本文件指定行的文本内容()
Dim fso As Scripting.FileSystemObject
Dim mytxt As Scripting.TextStream
Dim myfile As String
Dim i As Long
ActiveSheet.Cells.Clear
myfile = ThisWorkbook.Path & "\Adele.txt"
Set fso = New Scripting.FileSystemObject
Set mytxt = fso.OpenTextFile(Filename:=myfile, IOMode:=ForReading)
With mytxt
    For i = 1 To 8
        .SkipLine
    Next i
    MsgBox "文本文件的第9行数据为:" & .ReadLine
    .Close
End With
Set mytxt = Nothing
Set fso = Nothing
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-2-13 15:34 | 显示全部楼层
Sub sql读取csv文件数据()
    Dim cnn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Dim myCnnstr As String
    Dim sql As String
    Dim myfilename As String
    Dim i   As Long
    ActiveSheet.Cells.Clear
    myfilename = "Adele.csv"
    myCnnstr = "driver={microsoft text driver (*.txt; *.csv)};" & _
        "DBQ=" & ThisWorkbook.Path & "\;"
        cnn.Open "provider=msdasql;" & myCnnstr
        sql = "select * from " & myfilename
        rs.Open sql, cnn, adOpenKeyset, adLockOptimistic
        For i = 1 To rs.Fields.Count
            Cells(1, i).Value = rs.Fields(i - 1).Name
        Next
        Range("a2").CopyFromRecordset rs
        rs.Close
        cnn.Close
        Set rs = Nothing
        Set cnn = Nothing
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-7-7 18:57 , Processed in 0.038212 second(s), 4 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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