精华内容
下载资源
问答
  • excel vba excel vbaexcel vba

    2011-03-08 09:42:46
    不错的东西excel vbaexcel vbaexcel vbaexcel vba不错的东西不错的东西不错的东西不错的东西
  • VBAexcel贪吃蛇小游戏

    2011-09-30 11:02:21
    VBAexcel贪吃蛇小游戏 共有6个版本 刚学VBA 花了一天时间 愿与大家共享
  • VBA Excel实战

    2011-11-17 14:55:44
    为了帮朋友实现Excel中的一个功能,接触了VBA Excel。历经两天的时间,现将最终结果存档。 参考资料 vba excel编程三日谈 实现功能 在Excel文档中,当第一列为“是”,则右边6个单元格不可编辑且背景色改变;当...

        

    为了帮朋友实现Excel中的一个功能,接触了VBA Excel。历经两天的时间,现将最终结果存档。

    参考资料

    vba excel编程三日谈

    实现功能

    在Excel文档中,当第一列为“是”,则右边6个单元格不可编辑且背景色改变;当第一列为“否”,则右边6个单元格可编辑且背景色恢复白色。

    准备工作

    新建一个Excel文档,选中第一列,按照下图设置数据有效性:

    代码

    Private Sub Worksheet_Change(ByVal Target As range)
        
        If Target.Column = 1 Then
        
            Dim editable As Boolean
            Dim rowNumber As Integer
            Dim columnNumber As Integer
            Dim rag As range
                    
            rowNumber = Target.Row
            columnNumber = Target.Column
            Set rag = range(Cells(rowNumber, columnNumber + 1), Cells(rowNumber, columnNumber + 6))
                                
            If Target.Text = "是" Then
               
                editable = False
     
                rag = ""
                With rag.Interior
                    .Pattern = xlSolid
                    .PatternColorIndex = xlAutomatic
                    .ThemeColor = xlThemeColorDark1
                    .TintAndShade = -0.149998474074526
                    .PatternTintAndShade = 0
                End With
                
            End If
            
            If Target.Text = "否" Then
      
                editable = True
                
                With rag.Interior
                    .Pattern = xlNone
                    .TintAndShade = 0
                    .PatternTintAndShade = 0
                End With
            
            End If
            
            With rag.Validation
                .Delete
                .Add Type:=xlValidateCustom, AlertStyle:=xlValidAlertStop, Operator:= _
                xlBetween, Formula1:=editable
                .IgnoreBlank = True
                .InCellDropdown = True
                .InputTitle = ""
                .ErrorTitle = ""
                .InputMessage = ""
                .ErrorMessage = ""
                .IMEMode = xlIMEModeNoControl
                .ShowInput = True
                .ShowError = True
            End With
            
        End If
        
    End Sub
    
    
    


     

    展开全文
  • VBA Excel 自定义函数不能调用成功的问题的解决方法问题以及解决方案的列举(持续更新中) 问题以及解决方案的列举(持续更新中) 自定义函数是自动化各种Excel重复操作的重要函数,我们可以用它实现各种自己的奇葩...

    VBA Excel 自定义函数不能调用成功的问题的解决方法

    问题以及解决方案的列举(持续更新中)

    自定义函数是自动化各种Excel重复操作的重要函数,我们可以用它实现各种自己的奇葩需求。但是当我退出VBA代码编辑界面调用时,却发现Excel找不到我定义的函数,那么可能有以下很多种原因可以导致上述的问题:

    1. 在VBA中误写定义为Sub 子程序,而不是 Function 函数,导致Excel不能识别。
    2. 在当前Sheet或者工作簿下 写VBA,而不是创建一个新的模块编写VBA。(本人是这个错误)
    3. 在其他的工作簿下 写VBA,导致在当前excel文件下不识别。
    4. 函数名和Excel自带函数名重复导致冲突。
    5. 网传Office破解版不能调用自定义函数,但是我使用的就是破解版,也可以识别。因此仅做参考。
    Function Merge_single(x As Range, y As Range)                  'This function is to filter some infomations indicated and put them together
        Dim wb As Object
        Dim st As Object
        Dim xx, yy As Range
        Dim xstr, ystr As String
        Dim rr As Integer
        If x.rows.Count <> y.rows.Count Then
            MsgBox "The variables you enter don't have the same column"
        End If
        Call del_text(x)
        Call del_text(y)
        ystr = Cells(y.Row, y.Column).Value
        xstr = filter(x)
        Merge_single = ystr & xstr
        xstr = ""
        ystr = ""
    End Function
    

    当解决问题后,在Excel界面可以像正常函数一样使用你的自定义函数。如下图所示。在这里插入图片描述

    展开全文
  • vba excel入门教程

    2013-05-11 14:24:53
    挺好的真的挺好的,还不错啦,话说我是没分数下载资源了
  • 之前已经描述分别描述了Excel VBA的窗体、控件和Excel本身的对象(也就是数据的承载者)。本章主要描述Excle VBA中如何将控件和excel中的数据相关联。 一、如何关联已有的Excel文档和VBA 其实这个就是如何使用Vba...

    引言:

    之前已经描述分别描述了Excel VBA的窗体、控件和Excel本身的对象(也就是数据的承载者)。本章主要描述Excle VBA中如何将控件和excel中的数据相关联。

    一、如何关联已有的Excel文档和VBA

    其实这个就是如何使用Vba打开已有的Excel文件。这其实是我们关联excel和Excel最早要干的事,如果不打开文件,你还做毛线的操作。

    使用workbooks.open方法:

    表达式.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)

    括号里的都是参数

    Sub open_test()
        Workbooks.Open "D:\pbxtest.xlsx"
        Workbooks(2).Activate
    End Sub
    

    上面示例是表示打开文件pbxtest.xlsx,并激活。为什么使用 Workbooks(2).Activate呢,因为你打开excel本身就会有一个workbook,用workbooks(1)表示。(可以参考前面章节)

    注意:open方法带的路径是一个绝对路径。

    二、如何关联控件和Excel数据

    目前我找到两个方法:

    • 1.使用控件的controlsource,rowsource属性,能使用controlsource属性的控件如下图。

     rowsource 指定为组合框或列表框提供列表的来源

    示例1:

    下例在列表框中使用工作表单元格(A1:E4)的区域,文本框使用工作表单元格(A1)。这个代码示例使用了 RowSourceBoundColumnControlSource 属性。

    若要使用该示例,请将示例代码复制到某窗体的声明变量部分。请确保该窗体包含名为 LIstBox1 的列表框,命名为TextBox1的文本框。在工作表单元格的 A1:E4 中输入数据。

    Private Sub UserForm_Initialize()
    Workbooks(2).Activate
    TextBox1.ControlSource = "a1"
    
    ListBox1.ColumnCount = 5
    ListBox1.RowSource = "a1:e4"
    
    End Sub

    运行结果如下:

    红色框表示Textbox内的数据已经和excel的A1内容关联上了,蓝色框标识listbox的数据与Excel的A1:E4的数据关联上了,此时修改A1的内容,窗口内控件的值也会跟着动

    如下图:

    • 2.使用Change方法 

     上个例子比较死板,Textbox只能对应显示某一个Excel的单元格,且只能做如下动作:修改单元格然后触发TextBox的内容变化。我想更近一步的操作,比如我想鼠标选定哪个单元格,哪个单元格的内容就显示到TextBox(文本框),并且当修改文本框的内容时,Excel当前选定的单元格内容也会随之改变,该怎么弄?分三步:

    首先,写一个选定单元格的方法,并在窗体初始化时调用:

    目的:初始化时文本框就能显示已经选定单元格的内容。

    '选定Excel单元格
    Public Sub select_test()
        Dim rng As Range
        Set rng = ActiveCell.Cells
        UserForm1.TextBox1.Value = rng.Value
    End Sub
    '初始化窗口
    Private Sub UserForm_Initialize()
        Workbooks(1).Activate
        Call select_test
    End Sub
    • 注意:select_test()方法要定义成public方便不同的模块调用。 

    第二,改变文本框内容时,选定的单元格内容同步修改

    使用TextBoxChange方法。

    Private Sub TextBox1_Change()
        Set rng = ActiveCell.Cells
        rng.Value = UserForm1.TextBox1.Value
    End Sub

    第三,文本框显示选定单元格的内容

    使用worksheetSelectionChange方法。

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
       Call select_test
    End Sub

    选定单元格显示到文本框 

    修改文本框内容,EXCEL选定的单元格内容同步修改 

     

    不会弄gif图,凑合着看吧。 

    展开全文
  • 引言 本人本次实践的目标是数据查询。具体实现方式应该是: 使用窗体及其他控件做查询的条件的输入 使用excel作为查询结果的输出 从桌面上看应该是,...在VBA中也有,可以打开excel->开发工具 点开Visu...

    引言

    本人本次实践的目标是数据查询。具体实现方式应该是:

    1. 使用窗体及其他控件做查询的条件的输入
    2. 使用excel作为查询结果的输出
    3. 从桌面上看应该是,前面一个窗口输入查询条件,然后点确定,后面有个excel显示结果。
    4. 类似下图这种

        

    一、打开窗口 

    窗体俗称对话框,在可视化的面向对象的编程软件中都应该有。在VBA中也有,可以打开 excel->开发工具

    点开Visual Basic就会进入到变成界面,然后就可以插入窗体,如下图 

    二、窗体简介

     窗体,也就是窗口,或者叫对话框,是vba定义的一个对象,或者说一类对象。微软对“Microsoft 窗体”对象的介绍就是下面一幅图

    我们本节所说的”窗体“就是第二层(UserForm)。我们可以从图中看出,窗体对象,不止是指UserForm,还指其他的对象,如Controls,Font,MultiPage,等等。从面向对象的观点来说,这个图表示的应该是一个继承图。(我不是很熟,猜的) 如果上图是个继承关系图,那么我们可以得到几个结论:

    1. 他们的事件可以继承
    2. 他们的属性也可以继承
    3. 且儿子的属性和事件可能比父亲多。。。。

    三、窗体属性简介

    属性,表示这个窗体固有的特性,如基本的:长宽高,位置,颜色等;特殊的:如字体大小啊,有无滚动条啊等等

    所以分下类:

    • 基础属性:外观,位置,字体
    名称 窗体名称 该窗体的标识 可能是唯一标识

    BackColor

    背景色    

    BorderColor

    边框颜色   只有BorderStyle为1时,这个才有效

    BorderStyle

    边框类型(两种)

    0 fmBorderStyleNone

    fmBorderStyleSingle

     

    Caption

    窗体左上角显示的名字    

    Height

    窗体显示位置-高    

    Width

    窗体显示位置-宽    

     

     

     

     

     

     

     

     

    •  行为属性

    Cycle

    tab顺序指定控件接收焦点的顺序

    0 fmCycleAllForms

    2 fmCycleCurrentForm

    选0时,使用tab键,会遍历所有的该窗体范围内所有的控件;选1时,使用tab键,只会遍历某一窗体范围内的控件,tab不会跳出范围,到最后一个控件后会在回到该窗体范围的第一个控件
    showmodal 窗口是否锁死(这个词合适)

    true

    false

    选true叫模态,false叫非模态

    模态下,如果这个窗口是激活的,其他窗体或窗口则不能被选中。非模态,反之。

     

     

     

     

     

     

    • 滚动条

    ScrollBars

    滚动条

    0 fmScrollBarsNone

    1 fmScrollBarsHorizontal

    2 fmScrollBarsVertical

    3 fmScrollBarsBoth

    0 无

    1 水平

    2 垂直

    3 全部

    ScrollHeight

    ScrollTop

    滚动条高 height有值,top才填值 只有当ScrollHeight值大于窗体本身的height时,滚动条才会显示。这个时候Top表示滚动条离顶部的距离

    ScrollWidth

    ScrollLeft

    滚动条宽 width有值,left才能填值 只有当ScrollWidth值大于,窗体本身的Width时,滚动条才会显示。这个时候left表示滚动条离左侧的距离

     

     

     

     

     

     

     

     

     四、窗体事件、方法简介

    •  常用事件

    Initialize

    就是在初始化窗口时,要对窗口干的事情,比如给窗口属性赋值,给窗体内包含的控件赋初始值。

    Click

    点击窗体时,会干的事情,比如隐藏窗体等等

    Terminate

    关闭窗体是要干的事情,比如保存文件,关闭excel等

    • 怎么弄出来事件呢?

    先在左边选中窗口(对象),右边基本上都是事件。。。每个对象能响应的事件可能是不一样多的

    • 常用方法

    move,copy等等呢

    • 怎么弄出来方法呢?

    跟你写代码一样,写出这个对象在.一下,后面跟的就是方法和属性

    一般黑色表示属性,绿色标识方法。

    五、Initalize 、click事件示例

    下列示例假设程序中已有两个窗体UserForms。在 UserForm1 的Initalize事件中加载 UserForm2 ,并将其显示出来。当用户单击 UserForm2 时,就会将其隐含起来,而 UserForm1 将会出现。而当用户单击 UserForm1 时,UserForm2 便会再次出现。

    '这是 UserForm1 的 Initialize 事件过程
    Private Sub UserForm_Initialize()
        Load UserForm2
        UserForm2.Show
    End Sub
    '这是 UserForm2 的 Click 事件过程
    Private Sub UserForm_Click()
        UserForm2.Hide
    End Sub
    
    ' 这是 UserForm1 的 Click 事件
    Private Sub UserForm_Click()
        UserForm2.Show
    End Sub
    

     

    展开全文
  • Vba Excel 到 word 实例

    千次阅读 2019-05-07 14:57:27
    Excel sheet 名字为数据源 、sheet2 Word 模板:名字:模板.docx 里面包含一个模板表格 程序流程 1、打开模板文档、复制模板表格到剪贴板、关闭模板文档 2、创建新的文档、粘贴 3、使用数据源修改新文档的第一个...
  • Progress bar in VBA Excel

    千次阅读 2015-09-23 23:00:58
    from:http://stackoverflow.com/questions/5181164/progress-bar-in-vba-excel I'm doing a Excel app that needs a lot data updating from a database, so it takes time. I want to make a progress bar in a
  • vba excel编程三日谈(1)

    万次阅读 多人点赞 2010-06-09 14:28:00
    最近由于要修改一个excel report,见识了vba的强大。 这个report是一个大牛3年前写的,每天只需打开该文件, 就会自动连接oracle的dev和uat数据库读取最新的市场数据, 生成6个透视图,并比较dev和uat的数据的异同。...
  • vba excel 画折线图

    千次阅读 2018-08-08 10:45:52
    vbs:  Sub dttp() On Error Resume Next Dim rowend&amp;, arr, i&amp;, myShap As Shape, str As String, lastcol As Integer rowend = Range("a" &amp; Rows.Count).End(xlUp... ...
  • 一个excel文件其实就是一个excel工作簿,所以只需要使用workbook的open()方法。 '使用workbook的open()方法,当打开excel时窗口就会马上执行 Private Sub Workbook_Open() UserForm1.Show End Sub '窗体的初始化 ...
  • Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Address = "$f$5" Then Image1.Picture = LoadPicture(ThisWorkbook.Path & "\照片\" & Trim(Target.Value) & ".jpg") ...
  • VBA excel显示列号

    2017-09-10 21:27:19
    Sub 显示列号()  With Worksheets("sheet1")  .Activate  .Range("AZ1").Select  End With  MsgBox Selection.Column End Sub Sub 测试显示列号()  Dim intCol As Integer ... intCol
  • excel单元格和控件对应的value可以互相影响。意思就是你改一个另外一个就会跟着改 ControlTipText 指定当用户将鼠标指针放在控件上但未按下时所显示的文本           ...
  • vba excel to word

    千次阅读 2013-05-23 18:34:05
    excel中的数据按表格形式保存到word中:(在“工具”菜单中选中"引用"项 ) 选择: MicroSoft Word 11.0 Object Libarary 代码: Public Sub ExportWord() Dim WordApp As Word.Application Set ...
  • vba excel 单元格格式设置

    千次阅读 2017-01-12 10:49:04
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)  Cells.Font.ColorIndex = xlAutomatic  Dim x As Range  For Each x In ActiveSheet.UsedRange  If x.Value = ActiveCell.Value An
  • VBA Excel曲线图批量生成

    千次阅读 2018-06-22 15:50:08
    根据大量数据批量生成折线图,以下代码为根据不同proj_name与region,绘制以时间为横坐标,size为纵坐标,不同种类数据的折线图。iRows = ActiveSheet.UsedRange.Rows.Count proj_name_first = "...
  • vba设置单元格字体,以下是设置给定单元格内字体的加粗,单元格填充灰色等,参数是Range对象 Sub font_sty(Rng As Range) Rng.Select Selection.Font.Bold = True With Selection.Interior .Pattern = xlSolid...
  • Const Pi=3.1415926 as single

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,178
精华内容 6,471
关键字:

vbaexcel