从一个数组中取部分值生成新数组,要实现此需求通常都是采用循环的方法来完成,那有没有更简易的思路呢?

借用jscript可以实现,直接取值,不用循环。例如从100000万中元素是取8000个值出来生成新的数组,jscript能简单运行过程和书写过程。

案例展示:

假设用A1:A50区域的值生成一个数组Arr,然后从Arr中取5个值出来生成第二个数组Arr2。

代码如下:

Sub 从数组中取一段值生成新的数组()    '不使用循环的思路    Dim x As Object, y As Object, arr, arr2 '声明变量    Set x = CreateObject("Scriptcontrol")    x.Language = "jscript"    x.eval "function aa(aa) {return aa.toArray();}"    arr = [a1:a30].Value '将A1:A30的值赋给变量Arr    Set y = x.Run("aa", arr) '将数组arr的值传给变量y     'slice有两个参数,第一参数10表示从第11个元素开始(下标为0,因此参数10表示第11个值开始取值,包含第11个值本身)     '第二个参数15表示取值时截止到第16个值结束,但不包含第16个值。     '简单讲,slice(10, 15)就是从第11个值开始取到第15个值结束     arr2 = Split(y.slice(10, 15), ",")     MsgBox Join(arr2, ","), vbOKOnly, "新的数组" '将提取出来的新数组转换成一个字符串,输出到屏幕上  'End Sub

执行代码的结果如下:

请核对以上结果,它是代码y.slice(10, 15)生成的。从第11个元素开始取值到第16个结束,但不包含第16个(数组下标为0)。

学会了吗?

关注公众号可以获取更多知识分享。

vba 跳到下一个循环_VBA野知识分享:从一个数组中取部分值生成新数组,不使用循环的思路...相关推荐

  1. 利用for循环把遍历数组中的元素依次获取出来 数组笔记及基本知识点

    利用for循环把遍历数组中的元素依次获取出来 数组索引号从0开始 所以i必须从0开始  i<6 <script>var arr = ['blue', 2, true, 4, 5, 6 ...

  2. c++[2035]将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置。

    [题目描述] 将a数组中第一个元素移到数组末尾,其余数据依次往前平移一个位置. [输入] 第一行为数组a的元素个数: 第二行为n个小于1000的正整数. [输出] 平移后的数组元素,每个数用一个空格隔 ...

  3. 2021.04.06JAVA定义一个数组,随便输入一个数字,判断这个数在数组中是否存在,存在返回数组的下标,否则返回-1

    定义一个数组,随便输入一个数字,判断这个数在数组中是否存在,存在返回数组的下标,否则返回-1 public class TestD {public static void main(String[] ...

  4. 动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

     1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_ #include<stdio.h> #include<stdlib.h> /**** ...

  5. pycharm里怎么关闭一个项目_【周末分享】一个完整的项目复盘到底要怎么做?...

    点击"阅读原文",注册会员,海量活动方案免费拿 作者 | 杨阳(广告创意主笔) 来源 | 广告创意(ID:idea1408) 字数:3099 推荐阅读时长:5min 从计划到执行到 ...

  6. vue中从数组中取一个随机颜色,随机取1到10的一个整数

    data中定义数据 colorArr:[ " red ", " black " , " yellow ", " green &qu ...

  7. vba 跳到下一个循环_遍历工作薄和工作表(For Each循环的利用)

    今日的内容是"VBA之EXCEL应用"的第三章"工作簿(Workbook)和工作表(Worksheet)对象(Object)"中第三节"遍历工作薄和工 ...

  8. c语言删除数组重复元素并升序,C语言编程题: 编写函数,从一个已经排序的数组中删去某数后,该数组仍然有序....

    满意答案 nanhrui57q 2014.01.10 采纳率:57%    等级:12 已帮助:8634人 #include #include int compear(void *, void *); ...

  9. c语言二维数组每行最小值,编写一个函数,用于计算具有n行和m列的二维数组中指定列的平均值以及数组各行的和的最小值。...

    #include void function1(int arr[][100],int n,int m,int k) { int i; float sum=0; if(k>=m) { printf ...

最新文章

  1. PL/SQL ——分页编程
  2. Missing space before value for key ‘routes‘ key-spacing
  3. 临沂机器人火锅_临沂知名智能无人火锅前景
  4. 苹果发布会体现出的未来趋势
  5. python快速编程入门教程-半小时带你快速入门Python编程,Python快速入门教程
  6. 激光IMU融合——LIO-Mapping / LIOM / LINS / LIO-SAM算法解析
  7. BZOJ4943 洛谷3823 UOJ315:[NOI2017]蚯蚓排队——题解
  8. git报ssh variant 'simple' does not support setting port解决办法
  9. python计算存款_python入门教程NO.8 用python写个存款利息计算器
  10. c语言有较强的网络操作功能吗,《对于C语言的理解》--06级网络班 刘丽君
  11. DataSet自定义添加table并添加数据
  12. linux移动硬盘hd0,怎样将UbuntuLinux系统放到移动硬盘?
  13. Python开发技术—面向对象程序设计2
  14. python 小括号转译_Python-HTML转义字符
  15. 非常规方法彻底删除System Volume Information.exe
  16. 关于双通道CANFD记录仪的视频介绍
  17. 3.5mm耳机喇叭和麦克接头差异
  18. 【Weiler-Atherton算法】 计算机图形学多边形裁剪算法
  19. spark sql优化:小表大表关联优化 union替换or broadcast join
  20. ddt数据驱动 python_Python3数据驱动ddt

热门文章

  1. MySQL令人头疼的Aborted告警案例分析
  2. centos7 redis5.0以后版本 集群部署示例
  3. There is no configured/running web-servers found! Please, run any web-configuration and hit the Refr
  4. 【Flask】Nginx / Gunicorn入门:部署你的Flask项目
  5. BJUT算法设计与分析考试真题 无答案
  6. Google Spanner 论文笔记
  7. Leet Code OJ 3. Longest Substring Without Repeating Characters
  8. java当前时间转化毫秒_Java中将毫秒转化为日期的方法
  9. 产品经理必懂的技术那点事儿 pdf_培养一个合格的产品经理需要多少钱?
  10. Java并发容器(一) CocurrentHashMap的应用及实现