Private Sub Worksheet_SelectionChange(ByVal Target As Range) '可以直接sub(),不然选择就会触发vba    Dim rows_count As Integer    Dim rows_id As Integer    Dim column_count As Integer    Dim column_id As Integer    column_count = Selection.Columns.Count '返回选择区域列数 …
Excel VBA数组入门教程 1. 前言:不要把VBA数组想的太神秘,它其实就是一组数字而已. 2. 数组的维数: Sub 数组示例()  Dim x As Long, y As Long  Dim arr(1 To 10, 1 To 3)  '创建一个可以容下10行3列的数组空间  For x = 1 To 4    For y = 1 To 3       arr(x, y) = Cells(x, y)  '通过循环把单元格区域a1:c4的数据装进数组中    Next y  Next x…
[示例01] 赋值给某单元格[示例01-01] Sub test1()Worksheets("Sheet1").Range("A5").Value = 22MsgBox "工作表Sheet1内单元格A5中的值为" _& Worksheets("Sheet1").Range("A5").ValueEnd Sub[示例01-02]Sub test2()Worksheets("Sheet1&qu…
上篇提到如何从Excel界面上拿到用户的数据,另外反方向的怎样输出给用户数据,也是关键之处. VSTO最大的优势是,这双向的过程中,全程有用户的交互操作. 而一般IT型的程序,都是脱离用户的操作,只能让用户准备好数据,离开Excel,或生成数据,要重新打开某文件才能获取到数据结果. 在VSTO中,用户随时在Excel最强UI前端中生产数据,同时也在获得数据结果后,无缝地利用Excel强大的数据处理能力进行数据的再次加工如Vlookup一些其他信息进来,做个图表展示等等. VSTO程序在用户全程数…
在Excel开发过程中,大部分时候是和Range单元格区域打交道,在VBA开发中,大家都知道的一点是,不能动不动就去遍历所有单元格,那性能是非常糟糕的,很多时候,是需要把整个单元格区域装入数组中再作处理的. 在VSTO开发中,难不成还要用VBA这套老掉牙的东西来做吗?VBA的二维数组在.Net的世界中,真的一无是处,太多比它好用的东西存在,其中笔者最喜欢用的是DataTable这样的结构化的数据结构. 从单元格到DataTable,其实也就几句代码的事情,当数据进入到DataTable后,可以使…
本文基于以下文件 http://pan.baidu.com/s/1nvJtsu9 (部分)内容预览: 1. 边框样式 Sub cell_format() Dim sht As Worksheet Dim rng As Range Set sht = Worksheets("Parameter") Set rng = sht.Range("B2:C20") ' 设置边框格式 ' 这是常规的实线.细线,默认颜色为黑色 rng.Borders.LineStyle = xl…
在日常数据处理过程中,需要对缺失数据进行填充时,按一定逻辑规则进行处理,实现快速填充,规范数据源.此篇给大家带来多种填充数据的场景. 业务使用场景 对各种系统中导出的数据,很多时候存在数据缺失的情况,需要进行补全处理,方可进行下一步的数据分析操作.数据的向下.向上.向左.向右填充的场景因此产生,特别是向下填充. 空数据向下填充 填充后的数据结果 除了空值填充外,还有一大需求是单元格区域的公式统一化填充.需要在此进行简单的科学数据化管理的小普及. 在Excel表格中,没有类似数据库的强制性数据结构…
Excel的数据保护能力有限,诸如之前提及过的工作表保护.工作薄保护等,都是十分微弱的保护措施,而对于强保护的工作薄打开密码来说,它像是个总开关一样,要么全不能看,要么就全看到.有这样的场景需求,一份工作表内,有部分内容是较为敏感的,不想让人轻易看到,在这样的场景下,有必要对单元格的内容进行加密处理,原生功能不支持,Excel催化剂带给大家行业公认较为可靠的加密手段,应对一般性的加密需求足够. 使用场景 单元格的部分内容需要加密起来不给人查看到,这个简单的需求,真正用原生功能实现起来,还真不容易…
引用 using Excel = Microsoft.Office.Interop.Excel; 定义 Excel.ApplicationClass app; Excel.Workbooks books; Excel.Workbook book; Excel.Sheets sheets; Excel.Worksheet sheet; Excel.Range m_objRange; object missing = System.Reflection.Missing.Value; 读取有效单元格区…
Sub W()   ' MsgBox "行数:" & Selection.Rows.Count    Dim rows_count As Integer    Dim rows_id As Integer    Dim column_count As Integer    column_count = Selection.Columns.Count '获取选择区域的列数    'MsgBox column_count '打印列数    rows_id = ActiveCell.…