精华内容
下载资源
问答
  • 原创Office编程百宝箱,集30多个VBA开发功能,为广大VBA编程爱好者的福音与必备利器。轻松实现一键关机、一键开机、锁机待机等。由全球顶尖级水平微软MVP专家与财会管理信息团队历时多年开发,是与OFFICE用户与爱好...
  • WPS EXCEL中的VBA编程

    千次阅读 2013-09-11 17:47:52
    近日,由于某些原因,公司部分微软office被卸载了,装上了wps。...我安装了wps2013个人版+vba插件。 1,问题描述  Set MyPivotTable = MyPivot.PivotTableWizard(SourceType:=xlDatabase, SourceD

    近日,由于某些原因,公司部分微软office被卸载了,装上了wps。

    原本excel中的宏在wps中不能正常使用,没办法,任务落到了从没有接触vba编程的我手中。

    我安装了wps2013个人版+vba插件。

    1,问题描述

              Set MyPivotTable = MyPivot.PivotTableWizard(SourceType:=xlDatabase, SourceData:=Range("中间表!A1:E1" & count))

             出现错误438 对象不支持该属性或方法

            本来在Excel中是没有问题的

             是不是wps不支持这些属性?

    在网上各种寻找答案,无果。个人分析是wps对vba支持不够完善。

    没办法,不能用数据透视表,就想办法模拟数据透视表的功能。闹了一天,鉴于本人技术不够,没搞定。

    就看原本的数据透视表中都是什么数据,我就

    Dim ts As Worksheet
    Set ts = Sheets.Add
        
    For Each R In Worksheets
        If R.Name = "数据透视表" Then R.Delete
    Next
    ts.Name = "数据透视表"
       
    Sheets("中间表").Select
    Columns("A:E").Select
    Selection.Copy

    Sheets("数据透视表").Select
    ActiveSheet.Paste

    Range("B:D").Delete

    Dim pivCount As Integer
    pivCount = Worksheets("数据透视表").Range("A65536").End(xlUp).Row

    Columns("A:B").Select
    Selection.Copy
    ActiveSheet.Paste

    就是从其他表中把相同数据放进一张“数据透视表”中。那就没有上述问题了,不过我这个是简单的数据透视表。

    要是特别复杂,这方法就不合适了。强烈建议官方完善对vba的支持。

    如果有更好的解决方法,也请不吝赐教。

    2,问题描述

           Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

           这行代码报错不认识PasteSpecial,我看源代码下面有一行类似代码没有报错,复制过来

          Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False 就一个选择性粘贴,后来我果断注释了。用这个ActiveSheet.Paste好像就没问题了

    2,问题描述

             刚把上面的问题解决,新的问题又来了。

             运行结果中总是少了第一行(比对在excel2003中运行结果)

             这显然是wps的问题,因为代码是一样的。


        解决方法:找了很久,发现一行代码Rows("1:2").Delete

                          果断改成Rows("1:1").Delete  好像就可以了   = =!



    一些想法:1> 编程尽量什么语言都了解一点,但至少一门需要精通。

                         2>我一向是支持国产的,不过wps还是有很多问题,希望继续改进吧。我在wps官方论坛发帖求助,没人吊我,真是悲催!!

                              希望只是我一个人悲催。




    下面贴上代码

             Sub Macro1(strDep As String)

    Application.DisplayAlerts = False
    Dim sh As Worksheet
    Set sh = Sheets.Add
        
    For Each R In Worksheets
        If R.Name = "中间表" Then R.Delete
    Next
    sh.Name = "中间表"



    Dim ts As Worksheet
    Set ts = Sheets.Add
        
    For Each R In Worksheets
        If R.Name = "数据透视表" Then R.Delete
    Next
    ts.Name = "数据透视表"
        
        
    'Dim strDep As String
    'For Each r In Worksheets
    '    If VBA.Left(r.name, 3) = "RCJ" Then
    '        strDep = r.name
    '    End If
    'Next

    Sheets("好件").Select
    Range("A1").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=3, Criteria1:=strDep, Operator:=xlAnd

    Columns("A:E").Select
    Selection.Copy

    Sheets("中间表").Select
    ActiveSheet.Paste
       
    Dim r_count As Integer '行数
    r_count = ActiveSheet.UsedRange.Rows.count
    r_count = r_count + 1

    Sheets("在途").Select
    Range("A1").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=3, Criteria1:=strDep, Operator:=xlAnd

    Sheets("在途").UsedRange.Select
    Selection.Copy
           
    Sheets("中间表").Select
    Range("A" & r_count).Select
    ActiveSheet.Paste

    Rows(r_count).Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlUp




    Sheets("中间表").Select
    Columns("A:E").Select
    Selection.Copy

    Sheets("数据透视表").Select
    ActiveSheet.Paste

    Range("B:D").Delete

    Dim pivCount As Integer
    pivCount = Worksheets("数据透视表").Range("A65536").End(xlUp).Row

    Columns("A:B").Select
    Selection.Copy
    ActiveSheet.Paste
    'Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False'




    Dim vlookup_str As String
    Dim location As Integer
    '行数
    location = Worksheets(strDep).UsedRange.Rows.count

    Worksheets(strDep).Activate
    For i = 3 To location
        vlookup_str = "=IF(ISERROR(VLOOKUP(RC[-17],数据透视表!C[-17]:C[-16],2,0)),0,VLOOKUP(RC[-17],数据透视表!C[-17]:C[-16],2,0))"
        Range(Cells(i, 18), Cells(i, 18)).Select
        ActiveCell.FormulaR1C1 = vlookup_str
    Next i

    '定位库存列
    Dim locColumn As Integer
    locColumn = 18  '默认位
    For i = 1 To Worksheets(strDep).UsedRange.Columns.count
        If Cells(1, i) = "库存" Then
            locColumn = i
            Exit For
        End If
    Next

    '用选择粘贴:公式转数字
    Range(Cells(3, locColumn), Cells(location, locColumn)).Select
    Selection.Copy
    Range(Cells(3, locColumn), Cells(3, locColumn)).Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
    xlNone, SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False

    '----------开始筛选----------
    Application.ScreenUpdating = False '关闭屏幕更新

    ActiveSheet.AutoFilterMode = False '取消前一次的自动筛选
    With Rows("2:2") '筛选第二行的第6列
        .AutoFilter
        .AutoFilter Field:=6, Criteria1:=">0", Operator:=xlAnd
        .AutoFilter Field:=2, Criteria1:="=*MAIN_BD*", Operator:=xlAnd
    End With
     
    Application.ScreenUpdating = True

    Set sh = Sheets.Add
    For Each R In Worksheets
        If R.Name = strDep + "NBOK" Then R.Delete
    Next
    sh.Name = strDep + "NBOK"

    'NBOK表
    Worksheets(strDep).Activate
    Columns("A:F").Select
    Selection.Copy

    Dim nbok_row As Integer
    Sheets(strDep + "NBOK").Select
    ActiveSheet.Paste
    nbok_row = Worksheets(strDep + "NBOK").Range("A65536").End(xlUp).Row
    If nbok_row = 1 Then
        nbok_row = 3
    Else
        nbok_row = nbok_row + 1
    End If
    Worksheets(strDep).Activate
    ActiveSheet.AutoFilterMode = False '取消前一次的自动筛选
    With Rows("2:2") '筛选第二行的第6列
        .AutoFilter
        .AutoFilter Field:=6, Criteria1:=">0", Operator:=xlAnd
        .AutoFilter Field:=1, Criteria1:="=18*", Operator:=xlAnd
    End With
    Columns("A:F").Select
    Selection.Copy

    Sheets(strDep + "NBOK").Select
    Range("A" & nbok_row).Select
    ActiveSheet.Paste
    Rows(nbok_row).Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlUp

    Rows("1:1").Delete
    Columns("B:E").Delete
    Range("D1").Select
        Selection.Copy
        Columns("A:B").Select
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
    '---------------------------

    Set sh = Sheets.Add
    For Each R In Worksheets
        If R.Name = strDep + "NB" Then R.Delete
    Next
    sh.Name = strDep + "NB"

    Worksheets(strDep).Activate
    Application.ScreenUpdating = False '关闭屏幕更新
     
    ActiveSheet.AutoFilterMode = False '取消前一次的自动筛选
    With Rows("2:2") '筛选第二行的第6列
        .AutoFilter
        .AutoFilter Field:=6, Criteria1:=">0", Operator:=xlAnd
        .AutoFilter Field:=2, Criteria1:="<>*MAIN_BD*", Operator:=xlAnd
        .AutoFilter Field:=1, Criteria1:="<>18*", Operator:=xlAnd
    End With
    Application.ScreenUpdating = True

    'NB表
    Columns("A:F").Select
    Selection.Copy
    Sheets(strDep + "NB").Select
    ActiveSheet.Paste
    Rows("1:1").Delete
    Columns("B:E").Delete
    Range("D1").Select
        Selection.Copy
        Columns("A:B").Select
        Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
            SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False

    Worksheets(strDep).Activate
    ActiveSheet.AutoFilterMode = False '取消前一次的自动筛选

    Worksheets("数据透视表").Delete
    Worksheets("中间表").Delete


    End Sub




    展开全文
  • 《Excel 2010 VBA编程与实践》是“Excel疑难千寻千解”丛书之一,为读者展示VBA编程的实战技巧,包括工作中的疑难处理方案、自定义函数技术、代码封装技术、功能区设计技术,以及插件开发实战与原理分析。...
  • 《Excel疑难千寻千解丛书:Excel 2010 VBA编程与实践》是“Excel疑难千寻千解”丛书之一,为读者展示VBA编程的实战技巧,包括工作中的疑难处理方案、自定义函数技术、代码封装技术、功能区设计技术,以及插件开发...
  • Office编程百宝箱29.0,简称VBA百宝箱。为Office编程国产首款超大型插件,原创30多个功能宝贝。所有功能通用于Excel、Word、PowerPoint、Outlook、Access、Publisher、Project、Office全家福。适用于微软Office2003...
  • Office插件编程[转]

    2013-12-06 11:19:00
    Office插件编程[转] 基于VS 2005环境的MS office自动化开发之熟悉环境篇 出处:Clever101作者:佚名 日期:2010-4-3 23:50:24 [大中小] 评论:0|我要发表看法 进行MS office自动化开发最好的...

    Office插件编程[转]

    基于VS 2005环境的MS office自动化开发之熟悉环境篇

    出处:Clever101 作者:佚名 日期:2010-4-3 23:50:24 [  ] 评论: 0 | 我要发表看法

     

     进行MS office自动化开发最好的工具或许是VBA,但是很多时候我们的应用系统往往和MS office的文件打交道,比如生成word文件和EXCEL报表等等,因此学习一下主流的开发工具关于MS office自动化的知识还是很有必要的。从今天起,我将推出一些基于VS 2005环境的MS office自动化开发的一些入门文章。第一篇是关于熟悉开发环境。

          这次我使用的是VS C++ 2005。经过一番折腾,我感觉VS C++ 2005对MS office自动化开发的支持还比不上VC 6.0。我这么说是有根据的,因为基于VC 6.0和基于VS 2005环境的MS office自动化开发我都做过。在VC 6.0,你只需要找到TpyeLib那个dll文件(或tlb文件、olb文件),选择你要用的类,然后VC 6.0为你自动生成.h文件和.cpp文件,这样你就可以直接使用其中定义的类了。

            我原以为VS C++ 2005会沿用VC 6.0的做法。但我发现VS C++ 2005采用了新的做饭,这也倒没什么,问题严重的是这种新的方式居然对MS office自动化开发支持比较的糟糕(Word操作部分)。

           进行MS office自动化开发,做法基本都是选择MS office的组件,然后导出你要使用的接口类,这在VC 6.0和VS C++ 2005都是一样。下面我以一个简单例子说明一下VS C++ 2005的具体做法,对应的ms office版本是office 2003。


     

          首先用VS 2005新建一个单文档工程Owner,然后为工程添加一个类,选择“TypeLib中的MFC类”,具体如下图:

     

     

    单击“添加”按钮后出现下图,从下图我们看出VS 2005比VC 6.0的一点进步,这里多了一个导出来源:注册表。注册表的好处是名字直观,否则比如选择文件,你要操作word,你还要费一番心思去搜索操作word的类到底藏在哪个dll文件或olb文件、或tlb文件之中呢?

          基于顾名思义的原则,我们在可用的类型库中选择Micro Word 11.0 Object Library<8.3>。这时出现一大堆接口类,我们也不知道该用哪个,干脆一古脑把它们全导入进来,具体如下图:

     

        单击“完成”按钮后,你可以发现工程在一时之间出现了一大堆.h文件:CAddIn.h、CAddIns.h……你可能会疑惑,对应的cpp文件呢?对不起,VS 2005并没有为你生成。这时你或许感受到VS 2005和VC 6.0在office自动化开发的一点区别了吧。

     既然一夜之间来了那么多新丁,先编译一下吧,OK,编译通过,这时你会说:VS 2005和VC 6.0的做法也不过大同小异罢了。先别那么早下结论,开始编码:

    #include "CApplication.h"
    CApplication app;
     

     

     先编译一下,这时出现了一些你想象不到的编译错误:

     1>f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(1073) : error C2786: “BOOL (__stdcall *)(HDC,int,int,int,int)”: __uuidof 的操作数无效

    1>f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(1073) : error C2923: “_com_IIID”:“Rectangle”不是参数“_Interface”的有效模板类型变量

    1>        c:\program files\microsoft visual studio 8\vc\platformsdk\include\wingdi.h(3514) : 参见“Rectangle”的声明

    1>f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(1073) : error C3203: “_com_IIID”: 未专用化的类模板不能用作模板变量,该变量属于模板参数“_IIID”,应为real 类型

    1>f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(7113) : warning C4003: “ExitWindows”宏的实参不足

    1>f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(7113) : error C2059: 语法错误: “常量”

    1>f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(13448) : error C2146: 语法错误: 缺少“;”(在标识符“Fonts”的前面)

    1>     f:\mytest\mytest\src\intdir\debug\owner\msword.tlh(13448) : error C4430: 缺少类型说明符- 假定为int。注意: C++ 不支持默认int

           这时你可能会大呼:My God!这是怎么回事?抱歉,我也不知道为什么会出现这种问题。我初步估计为VS C++ 2005对MSWORD.olb这个组件支持得并不好,对其它一些组件可以支持。在这里我提供一个解决方案。在CApplication.h中将系统自动生成的:

    #import "C:\\Program Files\\Microsoft Office\\OFFICE11\\MSWORD.OLB" no_namespace

     

    注释掉。然后添加如下代码:

    #import "C:\Program Files\Common Files\Microsoft Shared\Office11\MSO.DLL"
    #import "c:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.olb"
    #import "c:\Program Files\Microsoft Office\Office11\MSWORD.olb" \
    rename("ExitWindows","_ExitWindows")
    #import "c:\Program Files\Microsoft Office\Office11\EXCEL.exe" \
        rename("DialogBox","_DialogBox") \
        rename("RGB","_RGB") \
        exclude("IFont","IPicture")
     

     

    这样做之后再选择“重新生成”重新编译整个工程就可以顺利使用CApplication类了(注意是重新生成),尽管还有一些警告。

          另外在每次编译时不时出现下面这个讨厌的对话框:

           我还没找到办法去掉这个对话框

    posted @ 2013-12-06 11:19 心灵捕手 阅读(...) 评论(...)  编辑 收藏
    展开全文
  • 《Excel 2010 VBA编程与实践》是“Excel疑难千寻千解”丛书之一,为读者展示VBA编程的实战技巧,包括工作中的疑难处理方案、自定义函数技术、代码封装技术、功能区设计技术,以及插件开发实战与原理分析。...
  • 插件的设计目标不但是方便自己使用,更是要教会职场中追求进步的人群以及即将步入职场的学生们使用高效的VBA编程技法提升职场中数据协作和操控的能力。该插件以选项卡的形式显示在Excel软件界面中。只要您打开任意...

    7046c833f4cae408c888789fb0811da5.png

    598082faf5390f0e070a67581c324e4c.png

    《神奇的VBA》插件是一款基于微软Excel软件的VBA学习插件,适用于Office2010版本起至最新的Offce 365套件中的所有版本Excel软件,32位和64位操作系统均可安装使用。该插件的设计目标不但是方便自己使用,更是要教会职场中追求进步的人群以及即将步入职场的学生们使用高效的VBA编程技法提升职场中数据协作和操控的能力。

    9242908af45e52bfdce6621069b66886.gif


    该插件以选项卡的形式显示在Excel软件界面中。只要您打开任意Excel工作簿,点击界面选项卡中的相关按钮就能快捷地获取VBA重要主题知识。主题知识涵盖VBA编程的基础语法、函数(自定义函数和VBA函数)、数组、调试技巧、单元格区域对象、工作表对象、工作簿等对象的常规属性方法和事件、工作表控件、窗体控件及其他外部对象如字典和文件系统对象等等知识。随着未来插件版本的扩展升级,《神奇的VBA》将与时俱进地囊括更多高级应用知识。

    96fdb009c69eef584e3af8b9d28b6c95.gif

    插件链接:https://pan.baidu.com/s/1ACnntUozdWVkqkH_voTIQA提取码:ch75
    该产品采用微软VSTO开发技术,结合使用C#、Javascript程序语言、HTML前端标记语言和CSS层叠式样式码共同进行编写。为了给使用者一个更好的体验,从构思到1.0版本开发完毕,耗费了作者大量心血,整体耗时近2年时间。相较于传统的VBA学习类书籍,《神奇的VBA》以更加简便直观的方式帮助学习Excel VBA数据编程技能。

    1. 内置在Excel软件界面选项卡中,只要打开任一工作簿就能使用,有助于快速对照学习VBA代码。
    2. 内置大量丰富唾手可得的示例代码及代码注释帮助理解代码含义。
    3. 内置大量的动态图即动态显示设置帮助直观学习VBA。
    4. 插件中提供了大量功能块代码,供您日常直接复用改写。
    5. 插件未来版本将提供联网实时更新功能,一旦安装,如产品有更新将提示更新。

    《神奇的VBA》不但是一份学习工具书,也是一份教学培训材料,也可以作为日后写VBA代码的参考工具。善用《神奇的VBA》插件将为您的职场之路增添更强的战斗力。职场达人必备的Excel插件。
    作者在设计这款插件时,也是用心良苦, 除了内置了大量示例代码,动态图演示等,

    9ac17059cbebc397eb144f5b6fcb54d6.gif


    还用心的重新设计美化了界面,界面中还添加了可以置顶的按钮,这样方便初学者可以对照练习。这一点对于双屏的用户会更加有帮助!

    3d28d8374f0562a336cda9e44138ecbc.gif


    另外,对于常见对象设置了大量代码示例供学习,并刻意屏蔽了复制的功能, 费尽心机地想逼着初学者务必动手抄代码练习VBA,这样能更快地找到VBA编程的感觉和理解。为方便用户查看代码,还设置了鼠标划动变色的功能,方便阅读代码。

    1ba161105176228160a0b8058ba0d90d.gif
    展开全文
  • Excle也能编程-VBA小工具

    千次阅读 2017-02-06 23:40:50
    工作中有用到,就学习了一下VBA编程。发现这个真的可以使得Excle工作效率倍增。 工作需求,为照片粘贴档案条。需要将一条条数据,转换为小纸片并且按照特殊样式排序。 完成后像这样其实要完成这个还是比较简单的。...

    工作中有用到,就学习了一下VBA编程。发现这个真的可以使得Excle工作效率倍增。
    工作需求,为照片粘贴档案条。需要将一条条数据,转换为小纸片并且按照特殊样式排序。
    完成后像这样这里写图片描述

    其实要完成这个还是比较简单的。
    主要说说自己遇到的几个“坑”
    1.此次样式用到了“模板”,并不是完全靠代码来调整出来的。
    2.想用插件-窗口来封装“转换”操作。但是发现窗口不行,所以后面用到窗体中的按钮来实现。
    3.因为要符合打印纸的格式,所以样式调了好一会儿。

    首先建立标签的模板
    这里写图片描述
    像这样,在最右边建立相应的模板样式。

    接下来就是编辑窗体代码了!
    窗体代码

    Dim a As Integer '声明一个公共变量
    Private Sub UserForm_Initialize()
    With Me
    StartUpPosition = 0
    Left = 600
    Top = 50
    End With
    End Sub
    
    Private Sub CommandButton1_Click()
        Call 生成档案条
        UserForm1.Hide
    End Sub
    Sub 生成档案条()
        Sheets(2).Activate
        Sheets(2).PageSetup.PrintArea = ""
        Dim MaxRow As Long '声明变量
        a = 0
        Application.ScreenUpdating = False
        MaxRow = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
        Cells(1, Columns.Count - 2).Resize(4, 3).Copy
        '将档案条模板粘贴到A列,且粘贴的份数由工资表的行数决定
        Range("a1:C" & (MaxRow - 1) * 4).PasteSpecial xlPasteAll
        Range("a1:C" & (MaxRow - 1) * 4).PasteSpecial xlPasteColumnWidths
        Range("a1:C" & (MaxRow - 1) * 4).PasteSpecial xlPasteFormulas
        Dim rowHigh As Range
        Dim rowHighBase As Range
        Dim HighBase As Integer
        For i = 1 To MaxRow * 4
            HighBase = i Mod 4
            If HighBase = 0 Then
                HighBase = 4
            Else
                HighBase = i Mod 4
            End If
            Set rowHigh = Rows(i)
            Set rowHighBase = Rows(HighBase)
            rowHigh.RowHeight = rowHighBase.RowHeight
        Next
        For i = 2 To MaxRow '循环复制数据
            复制数据 (i) '调用“复制数据”过程,将工资表的信息复制到工资卡中
        Next
    Call 排版 '调用过程'排版'
        Application.ScreenUpdating = True
    End Sub
    Sub 复制数据(i As Integer)
    '将‘档案的数据’填入每一份档案卡中
        Dim id As String
        id = Sheets(1).Cells(i, 2) & "." & Format(i - 1, "0000")
        Cells(4 * a + 1, 2) = id
        Cells(4 * a + 2, 2) = Sheets(1).Cells(i, 5)
        Cells(4 * a + 3, 2) = Sheets(1).Cells(i, 16)
        a = a + 1
    End Sub
    Private Sub 排版()
        lrow = 1
        drow = 0
        Application.ScreenUpdating = False
        Dim MaxRow As Long, c As Long
        MaxRow = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row '记录已用区域的行数
        c = Int(MaxRow / 2 + 1) '计算拆分成两列后纵向需要排列多少份
        For i = 1 To c '横向复制7次
            Range(Cells(c * (i) * 4 + 1, 1), Cells(Int(MaxRow / 2 + 1) * (i + 1) * 4, 3)).Copy
            '粘贴到右边一列
            Cells(1, i * 3 + 1).PasteSpecial xlPasteAll
            Selection.PasteSpecial xlPasteColumnWidths '选择性粘贴列宽
        Next
        Rows((c * 3 + 1) & ":" & Rows.Count).Clear
        
        'Dim rng As Range
        'Set rng = Rows(1) '将第一行赋予变量
        'For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row + 1 Step 4
        '遍历所有行,步长为4
        '    Set rng = Union(rng, Rows(i)) ' 将Rng与第一行合并,即获得所有工资卡中的间隔行
        'Next
        'rng.RowHeight = 40
        '将 A 列到 F列的已用区域为打印区域
        Sheets(2).PageSetup.PrintArea = "$A$1:$F$" & Cells(Rows.Count, "A").End(xlUp).Row
        '页边距设置为0
        With Sheets(2).PageSetup
             .LeftMargin = Application.InchesToPoints(0) '左边距
            .RightMargin = Application.InchesToPoints(0)  '右边距
            .TopMargin = Application.InchesToPoints(0) '上边距
            .BottomMargin = Application.InchesToPoints(0) '下边距
            .HeaderMargin = Application.InchesToPoints(0) '页眉
            .FooterMargin = Application.InchesToPoints(0) '页脚
            .Orientation = xlPortrait '设置纵向打印模式
        End With
        ActiveWindow.View = xlPageBreakPreview ' 进入分页浏览状态
        '删除每页最上面多出来的一行
        Do While drow < MaxRow * 3 \ 2
            drow = lrow * 28
            Rows(drow).RowHeight = 20
            lrow = lrow + 1
        Loop
        'ActiveSheet.PageSetup.Orientation = xlLandscape '将页面设置为横向
        'ActiveWindow.View = xlPageBreakPreview ' 进入分页浏览状态
        'If ActiveSheet.VPageBreaks.Count > 0 Then '如果有纵向分页符'
            '将第一个分页符向右拖出'
        '    ActiveSheet.VPageBreaks(1).DragOff Direction:=xlToRight, RegionIndex:=1
        'End If
        Application.ScreenUpdating = True '恢复屏幕刷新
    End Sub
    
    Private Sub UserForm_Click()
    
    End Sub
    
    

    VBA虽然承袭了VB的代码,感觉有点儿坑。但是能让excle能够编程,并表现的更加自动化,真是比国产WPS强太多!

    展开全文
  • 《神奇的VBA》学习插件中介绍过VBA错误有语法错误,有运行时错误等等。语法错误在编程阶段编辑器会告知我们,这很方便,但是运行时错误有时候就有点麻烦了。程序运行时错误是所有写程序人的天敌!一个小小的错误有...
  • 本书是“excel疑难千寻千解”丛书之一,为读者展示vba编程的实战技巧,包括工作中的疑难处理方案、自定义函数技术、代码封装技术、功能区设计技术,以及插件开发实战与原理分析。本书侧重于“解决问题”,主要展示...
  • VBA For WPS 2019.rar

    2020-06-23 10:48:21
    一个适合WPS使用的vba插件,适用WPS2019版本,内附教程。安装完毕后,即可在WPS中启用宏,并进行vba编程处理。
  • VBA for WPS2013

    2013-09-24 13:46:54
    个人版WPS没有VBA插件,不支持宏编程,安装此插件可以进行宏编程。 不过没有微软软件来的顺畅,容易出现各种莫名其妙的问题。
  •   Office2000下内部COM插件编程实现 译者:徐景周 下载示例源代码 <br />简介 你也许曾在Office2000下的Word2000、Access2000、Excel2000、PowerPoint2000等软件中的工具条或菜单...
  • VBA入门

    2017-12-06 09:21:10
    学习了一晚上的VBA入门视频,知道...学习VBA,最好需要懂一门开发语言,因为编程的思想大同小异,入门的话,都需要学习一些概念,名词解释之类的,先了解VBA能够实现什么,为什么要学习这个技术,虽然我是一个搞JAVA WE
  • 职场中使用Excel VBA编程处理表格数据时,我们肯定会遇到过错误,《神奇的VBA》学习插件中介绍过VBA错误有语法错误,有运行时错误等等。语法错误在编程阶段编辑器会告知我们,这很方便,但是运行时错误有时候就有点...
  • "neocomplcache.vba 插件替代autocomplpop(acp.vim) omnicppcomplete.vim , 在使用acp.vim,OmniCppComplete.vim 你就被out "omnicppcomplete : c/c++ omni-completion with ctags database 。。。。。。。。 。。。...
  • WPS个人版如何启用VBA(宏)

    万次阅读 2016-10-11 11:30:53
    一般WPS个人版是不能使用VBA编程的,如何能启动呢? 需要我们自己下载VBA插件 安装 之后 就可以进行 VBA 编程 具体步骤:http://office.jb51.net/wps/4961.html
  • 职场中使用Excel VBA编程处理表格数据时,我们肯定会遇到过错误,《神奇的VBA》学习插件中介绍过VBA错误有语法错误,有运行时错误等等。语法错误在编程阶段编辑器会告知我们,这很方便,但是运行时错误有时候就有点...
  • CODEVBA插件简化开发

    2019-02-12 23:43:42
    VBACODE软件,大大简化开发步骤。VBA编程知识和生产的外接程序。包括Excel VBA和Access VBA插件

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 130
精华内容 52
关键字:

vba插件编程