VBA学习笔记(4)--数组和单元格互相转换
说明(2017.3.23):
1. VBA的数组还是很难用的,其实就是非常难用!
2. 要先定义一个数组,可以是空的,也可以里面写个数字作为数组长度。
3. 如果是空数组,可以后面redim重新定义数组长度。如果不是空的,再用redim就会报错“数组维数已定义”!
4. dim里面不能用变量,报错“只能用常数表达式”,里面只能用具体数字。
5. redim不能重新定义数组维数,就是说本来dim了一个一维数组,redim不能把它改成二维数组。
6. redim里面貌似能用变量。
7. 两种方法,一种定义一维数组,需要结果transpose转成行。另一种定义二维数组,结果直接写入单元格。
总结:
1. VBA的数组超级难用,用过的最难用的!
'第一种方法,定义一个一维数组,存放乘积,用transpose换成列后,写入单元格
Public Sub test()
Dim arr()
arr = Range("a7: b24")
arrNum = UBound(arr)
' 如果arr2是个一维数组,后面要用transpose列转行
Dim arr2()
ReDim arr2( To UBound(arr, )) For i = To UBound(arr, )
arr2(i) = arr(i, ) * arr(i, )
Next
' resize从这个单元格往下数多少行,第二个参数是多少列
' transpose把arr2的列转成行
Range("e7").Resize(UBound(arr2), ) = Application.Transpose(arr2)
End Sub
'第二种办法,定义一个二维数组,存放乘积,直接写入单元格
Public Sub test2()
Dim arr()
arr = Range("a7: b24")
arrNum = UBound(arr)
' 如果arr2一开始就定义为二维数组,后面就不用转成行了
Dim arr2( To , To )
' 本来想用变量作为数组大小,不过好像不支持,redim也不能含有变量,而且不能重新定义二维数组
' ReDim arr2(1 To 18,1 To 2) For i = To UBound(arr, )
arr2(i, ) = arr(i, ) * arr(i, )
Next
' resize从这个单元格往下数多少行,第二个参数是多少列
Range("e7").Resize(UBound(arr2), ) = arr2
End Sub
VBA学习笔记(4)--数组和单元格互相转换的更多相关文章
- HTML&CSS基础学习笔记1.15-合并单元格
合并单元格 之前的文章中,我们已经能够创建一个简单地表格了,如果我们需要把横向的某两个相邻单元格<td>或者纵向的某两个相邻单元格<td>合并,我们该怎么做呢?我们要知道的知识 ...
- PHP学习笔记之数组篇
摘要:其实PHP中的数组和JavaScript中的数组很相似,就是一系列键值对的集合.... 转载请注明来源:PHP学习笔记之数组篇 一.如何定义数组:在PHP中创建数组主要有两种方式,下面就让我 ...
- JavaScript学习笔记之数组(二)
JavaScript学习笔记之数组(二) 1.['1','2','3'].map(parseInt) 输出什么,为什么? ['1','2','3'].map(parseInt)//[1,NaN,NaN ...
- 原创:用VBA实现将鼠标选择的单元格按照指定格式合并并复制到剪切板
原创:用VBA实现将鼠标选择的单元格按照指定格式合并并复制到剪切板 一.主要实现以下功能:1.用鼠标选择单元格(可谓连续单元格,也可为不连续的)后,按照要求格式“证件号码:+选定内容+“,”+”选定内 ...
- javaSE学习笔记(15) ---缓冲流、转换流、序列化流
javaSE学习笔记(15) ---缓冲流.转换流.序列化流 缓冲流 昨天复习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化 ...
- VBA学习笔记
这是一个学习VBA编程的学习笔记. 一. 介绍 二. 使用手册 2.1. 如何在Excel2010中开始使用VBA? 2.2. 如何使用VBA编辑器进行编程? 三. 语法说明 3.1 数据类型 3.2 ...
- Scala入门学习笔记三--数组使用
前言 本篇主要讲Scala的Array.BufferArray.List,更多教程请参考:Scala教程 本篇知识点概括 若长度固定则使用Array,若长度可能有 变化则使用ArrayBuffer 提 ...
- JavaScript学习笔记:数组reduce()和reduceRight()方法
很多时候需要累加数组项的得到一个值(比如说求和).如果你碰到一个类似的问题,你想到的方法是什么呢?会不会和我一样,想到的就是使用for或while循环,对数组进行迭代,依次将他们的值加起来.比如: v ...
- [Golang学习笔记] 07 数组和切片
01-06回顾: Go语言开发环境配置, 常用源码文件写法, 程序实体(尤其是变量)及其相关各种概念和编程技巧: 类型推断,变量重声明,可重名变量,类型推断,类型转换,别名类型和潜在类型 数组: 数组 ...
随机推荐
- PLSQL常用配置
峰回路转,此乃常客! 01.PL/SQL Developer记住登陆密码 为了工作方便希望PL/SQL Developer记住登录Oracle的用户名和密码: 设置方法: PL/SQL Develop ...
- python实现的电影票房数据可视化
代码地址如下:http://www.demodashi.com/demo/14275.html 详细说明: Tushare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采 ...
- 捕获Chrome浏览器全屏退出事件
参考地址 document.addEventListener("fullscreenchange", function(e) { console.log("fullscr ...
- jQuery动态表格插件 AppendGrid
AppendGrid是一个jQuery动态表格插件,提供像填写电子表格数据一样在页面去输入结构化数据. 它允许用户在表格里增加/删除/插入/删除行,控制input/select/textarea 提交 ...
- iOS设计模式:简单工厂模式
1.简述 首先需要说明一下,简单工厂模式不属于23种GOF设计模式之一.它也称作静态工作方法模式,是工厂方法模式的特殊实现(也就是说工厂模式包含简单工厂模式).这里对简单工厂模式进行介绍,是为后面的工 ...
- PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora、sqlnet.ora、tnsnames.ora原理解释
PLSQL连接ORACLE配置字符串简介 oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora原理解释 oracle网络配置三个配置文件 lis ...
- Windows下面安装和配置Solr 4.9(二)
将Solr和Tomcat结合: 1.在D盘下创建目录 D:\Demos\Solr 2.解压solr-4.9.0文件,我这里下载的是这个4.9版本,将example文件夹下的solr文件夹中的所有文件( ...
- 页面livereload width grunt
step-1. 安装node 环境 step-2. npm install grunt-cli \ grunt http://www.gruntjs.net/docs/getting-sta ...
- Smarty中section的使用
在smarty的使用过程中,有很多时候需要将一个数组输出到模板中来处理,以下将演示如何将一个索引(index)数组和关联(assocaite)数组在页面中展现出来. 本文中假设有如下一个索引数组 1 ...
- 安装ubuntu和windows双系统后,如何修改默认启动项
在安装了Ubuntu16.04系统之后,系统会默认自启动Ubuntu16.04,而我们大多数情况下可能都在使用windows系统,不修改默认设置,不经意间便会启动了Ubuntu16.04,通过我的经历 ...