精华内容
下载资源
问答
  • 循环给二维数组赋值时候

    千次阅读 2014-04-21 11:14:30
    循环给二维数组赋值时候

    循环给二维数组赋值时候arry[][];

    for ( var i =0;i<arry.length)

    arry[i]=i;  --一定要先给赋值,不然会在付给下一个循环的第二【】赋值时候会出现数组越界,因为他的第一个【】都找不到,怎么付给第二个值

    for (var j=0;j<arry[i][j];j++){

     

    }

     

    }

    展开全文
  • 数组必须定义大小后才可以使用? 如果是用for,一般需要知道循环次数,也就是单元格个数 如果用 for each ,while等,能吗?能 比如原始数据 ID 11 47 11 48 27 30 43 Sub get_arr() Dim arr1...

     

    方法1:循环法取数后,放在array里

    • 循环方法
    • 要求数据是有规律的,如连续等?
    • 数组必须定义大小后才可以使用?
    • 如果是用for,一般需要知道循环次数,也就是单元格个数
    • 如果用 for each ,while等,能吗?能

    比如原始数据

    ID
    11
    47
    11
    48
    27
    30
    43
    Sub get_arr()
    Dim arr1(10)    'array必须定义大小后才能使用
    
    For i = 1 To 10
        arr1(i) = Sheets("sheet3").Cells(i + 1, 1)
        Debug.Print (arr1(i))
    Next i
    
    End Sub

     

    方法2:数组大小不定,但也需要指定

    • 好处是,不用知道 要找的行,或者列的具体多少个
    • 局限性就是,只能取 1行,或1列的数据,也许有时这是个优点?
    • 局限性:中间不能有空格,如果有,得先用 对原始数据,VBA删掉空格后,这个之前写过
    • 还有种方法,用的 cells(a1) cells(65536) ? 能弄吗?

     

    ID         
    11121314151617181920
    47         
    11         
    48         
    27         
    30         
    43         
    60         
    86         
    99         
    Sub get_arr()
    Dim arr1()       'array必须定义大小后才能使用
    
        Rem 取第一列的数据试试
    
        max_row = Sheets("sheet3").Cells(Rows.Count, 1).End(xlUp).Row
        ReDim arr1(1 To max_row)
        i = 2
    Do
        i = i + 1
        arr1(i) = Sheets("sheet3").Cells(i, 1)
        Debug.Print (arr1(i))
    
    Loop While (i + 1) <= max_row
    Sub get_arr()
    Dim arr1()       'array必须定义大小后才能使用
    
        Rem 取第2行的数据试试
    
        max_column = Sheets("sheet3").Cells(2, Columns.Count).End(xlToLeft).Column
        ReDim arr1(1 To max_column)
        i = 0
    Do
        i = i + 1
        arr1(i) = Sheets("sheet3").Cells(2, i)
        Debug.Print (arr1(i))
    
    Loop While (i + 1) <= max_column

     

    方法3---归纳

    取一列最大非空单个元行号方法

    max_row = Sheets("sheet3").Cells(Rows.Count, 1).End(xlUp).Row

    max_row = Sheets("sheet3").Cells(65536, 1).End(xlUp).Row

     max_row = Sheets("sheet3").Range("a:a").End(xlDown).Row

     

    取一列最小非空单个元行号方法

     max_row = Sheets("sheet3").Range("a:a").End(xlup).Row

     

     

    取一行最大非空单个元行号方法

    max_column = Sheets("sheet3").Cells(2, Columns.Count).End(xlToLeft).Column

    max_column = Sheets("sheet3").[iv2].End(xlToLeft).Column

    max_column = Sheets("sheet3").Range("iv2").End(xlToLeft).Column

    错误的  max_column = Sheets("sheet3").Cells("iv2").End(xlToLeft).Column

    max_column = Sheets("sheet3").Range("2:2").End(xlToRight).Column   '好像第1列不能是空的

     

     

    取一行最小非空单个元行号方法

    max_column = Sheets("sheet3").Range("2:2").End(xltoleft).Column    '好像第1列不能是空的

     

     

    如果数据不规则呢?

    当前工作表中已使用的列数
    ActiveSheet.UsedRange.Columns.Count

     

     

     

    方法3?

    https://zhidao.baidu.com/question/1987985423240470147.html

    Sub test1()
    Dim arr1
    Dim arr2
    
    
    rem 思路是,先把EXCEL对象读到一个变量里,然后这个变量就是一个二维表对象
    rem 然后把另外一个数组,取这个二维数组的一个维度,取回数据
    rem 重新输入回去也好做吧
    
    
    arr1 = Sheets("ganzhi2").UsedRange   '这里不能用set arr1 也不能都为数组?只能变量?
    ReDim arr2(1 To UBound(arr1, 2))
    
    For i = 1 To UBound(arr1, 2) Step 1
    arr2(i) = arr1(1, i)
    Debug.Print arr2(i)
    Next
    
    For i = 1 To UBound(arr2) Step 1     '这样又写回去了,嗯
    Cells(3, i) = arr2(i)
    Next
    
    End Sub
    
    

     

     

     

    http://club.excelhome.net/thread-1250877-1-1.html

     

    需要熟悉 lbound ubound(arr,1)

    https://zhidao.baidu.com/question/562477244.html

     

     

    方法3?

    http://club.excelhome.net/forum.php?mod=viewthread&tid=1310859

    Sub test1()
    Dim vArr
    Dim oDic
    Set oDic = CreateObject("Scripting.Dictionary")
     

    vArr = Sheets("ganzhi2").UsedRange.Value '数组读表数据
    For nRow = 1 To UBound(vArr) '一般第一行是标题,就从第2行开始读
    oDic(vArr(nRow, 1)) = nRow '以第一列为字典关键字为例
    Next

    Debug.Print oDic.Count

    End Sub

     

     

    展开全文
  • 满意答案fxxhfr推荐于 2016.02.05采纳率:57%等级:12已帮助:4758人Dim stu(1 To 10, 1 To 5) '定义一个二维数组,Dim i As Integer '定义变量Dim j As Integer '定义变量For i = 1 To 10 '从1到10循环,即数组第一...

    满意答案

    dcebd7a0de6265b6ccae5ead692f1eab.png

    fxxhfr

    推荐于 2016.02.05

    dcebd7a0de6265b6ccae5ead692f1eab.png

    采纳率:57%    等级:12

    已帮助:4758人

    Dim stu(1 To 10, 1 To 5) '定义一个二维数组,

    Dim i As Integer '定义变量

    Dim j As Integer '定义变量

    For i = 1 To 10 '从1到10循环,即数组第一维循环

    For j = 1 To 5 '从1到5循环,即数组第二维循环

    a(i)(j) = 0 '给数组stu(i,j)=0赋值为零,你这句话有问题呀,a数组哪来的?并且vb二维数组不是这么个写法!!!

    Next i '这两句话也错了,应该是先next j,再next i !!!

    Next j

    End Sub

    dim stu(1 to 10) as integer '定义一个一维数组,从1到10

    dim l as integer '定义变量

    for i=1 to 10 '从1到10的循环

    a(i)=0 '将数组第i个的值赋值为0,数组名又错了 不是a 是 stu

    next i

    以下是我给你修改后的代码~~

    Private Sub Form_click()

    Dim stu(1 To 10, 1 To 5)

    Dim i As Integer

    Dim j As Integer

    For i = 1 To 10

    For j = 1 To 5

    stu(i,j) = 0

    Next j

    Next i

    End Sub

    dim stu(1 to 10) as integer

    dim l as integer

    for i=1 to 10

    stu(i)=0

    next i

    答案补充

    你这个都是给数组赋值,赋的值都是0,

    数组得到的值都是0

    11分享举报

    展开全文
  • 文章目录for_each给数组赋值啊 for_each给数组赋值啊 #include <iostream> #include <vector> #include <algorithm> using namespace std; template <class T> void Fillvalue(T& ...

    for循环赋值VS for_each

    测试0

    #include <iostream>
    #include <algorithm>
    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
    using namespace std;
    
    #define N 99999999
    
    void setvalue(int& elem)
    {
    	elem = 123894958;
    }
    int A[N];
    void main()
    {
    	srand((unsigned)time(NULL));
    	
    	double time1 = (double)clock() / CLOCKS_PER_SEC;
    
    
    	for (int i = 0; i < N; i++)
    		A[i] = 345436546;//debug: 0.363 release :0.176
    	//std::for_each(A, A + N, setvalue);//debug :2.12 ;release 0.172啊!!
    
    
    	double time2 = (double)clock() / CLOCKS_PER_SEC;
    	printf("%lf\n", double(time2 - time1));
    
    
    	cout << endl;
    }
    
    
    
    
    
    

    测试1

    • 气死我了,for_each居然要0.004
    • for循环只要0.001
    
    
    #include <iostream>
    #include <algorithm>
    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
    using namespace std;
    
    
    
    #define N 99999
    
    void setvalue(int &elem)
    {
    	elem = 123894958;
    }
    
    void main()
    {
    	srand((unsigned)time(NULL));
    	int A[N];
    	double time1 = (double)clock() / CLOCKS_PER_SEC;
    
    	
    	for (int i = 0; i < N; i++)
    		A[i] = 345436546;
    	//std::for_each(A, A + N, setvalue);居然要0.004啊!!
    	
    
    	double time2 = (double)clock() / CLOCKS_PER_SEC;
    	printf("%lf\n", double(time2 - time1));
    	
    
    	cout << endl;
    }
    
    
    

    #include <iostream>
    #include <algorithm>
    #include <stdio.h>
    #include <time.h>
    #include <stdlib.h>
    using namespace std;
    
    
    
    #define N 9999999
    
    void setvalue(int &elem)
    {
    	elem = 123894958;
    }
    
    void main()
    {
    	srand((unsigned)time(NULL));
    	int* A = (int*)malloc(sizeof(int) * N);
    	double time1 = (double)clock() / CLOCKS_PER_SEC;
    
    	
    	//for (int i = 0; i < N; i++)
    		//A[i] = 345436546;//0.028
    	std::for_each(A, A + N, setvalue);//居然要0.197啊!!
    	
    
    	double time2 = (double)clock() / CLOCKS_PER_SEC;
    	printf("%lf\n", double(time2 - time1));
    	
    
    	cout << endl;
    }
    
    

    for_each给数组赋值啊

    #include <iostream>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    
    
    template <class T>
    void Fillvalue(T& vect, int first, int last)
    {
    	if (last >= first)
    		for (int i = first; i <= last; ++i)
    			vect.insert(vect.end(), i);
    	else
    		cout << "the index is error : last<first" << endl;
    }
    
    void print(int elem)
    {
    	cout << elem << " ";
    }
    
    void setvalue(int &elem)
    {
    	elem = 123;
    }
    
    void main()
    {//程序入ロmain()函数
    	vector <int> myvector;
    	Fillvalue(myvector, 1, 10);
    	for_each(myvector.begin(), myvector.end(), setvalue);
    	for_each(myvector.begin(), myvector.end(), print);
    	cout << endl;
    }
    
    展开全文
  • vb中给字符串数组赋值

    万次阅读 2006-08-23 17:30:00
    前段时间用vb.net写程序,遇到一个给字符串数组赋值的问题。用google搜索了很长时间,找到的大都使用循环方法赋值的,我觉得那样有些麻烦,就一直在找新的方法。虽然后来找到了,时间长了, 我居然又给忘了。 今天...
  • VB.NET中,可以使用变量储存数据,例如储存学生姓名: dim strname as string=&amp;amp;quot;张三&amp;amp;quot; 可以声明多个变量来储存三年级1班全部学生姓名,为了方便,给每个学生编了号: dim 三...
  • vb自定义函数的方式是不是可以代替循环直接给数组的一个范围赋值?函数代替循环的做法是什么?怎么使用函数代替循环给范围赋值
  • VB数组、集合、泛型

    2019-07-10 08:02:59
    变量、数组、集合、泛型的发展 最开始用内存中一个位置映射一个值,用变量来“使用”这个值。 进一步发展,用变量来引用一组值,这就是数组。由数组概念,发展出链表、堆、栈,进行排序、检索等。 但这并不能完全...
  • 关于VB的Byte数组的初始化

    千次阅读 2014-09-01 00:26:30
     首先今天就先来说一说VB中的Byte数组初始化吧。比如一个20字节的Byte数组,我要初始化它的所有元素的值全部为0,则可以有以下几种方法(有其他方法的朋友请交流补充哦):   Dim byt() as byte  一...
  • VBA遍历数组的2种方式

    万次阅读 2018-12-20 17:26:00
    1.情景展示  VBA编程,如何对数组进行遍历? 2.解决方案  方式一:使用for循环 Sub 遍历数组1() '声明一个变量 ... '变量类型指定为数组赋值 Arr = Array(1, 2, 3, 4, 5) ...
  • 定义并赋值 var str = ['java', 'php', 'c++', 'c#', 'perl', 'vb', 'html', 'css'];2.用{}定义后赋值:var array = {};//定义一个数组array[0] = 'Tom';array[1] = 'Male';array[2] = '123456@qq.com';数组...
  • 很多情况下利用数组索引来设置一个循环,这样就可以高效地处理复杂的情况,因此在很多情况下,使用数组可以缩短或者简化程序的代码。本文主要介绍VB.NET数组的使用,希望对大家的使用带来帮助。 数组中的第一个元素...
  • vb6 中有两个二维数组 arr1,arr2 将arr2的 arr2(200,100) 到 arr2(300,10000)之之间的数据赋值给arr1 有什么快速的方法吗,不用循环的 好像 C中 arr2(300,10000)的地址赋值给 arr1(0,0) vb中怎么写
  • VB编程中,数组占据着相当重要的作用,往往结合循环控制结构、函数过程出现在程序代码中。今天,以求解数组最大值、最小值为例,带领大家学习一下数组的基本应用。首先是定义一个数组,然后再用Rnd随机函数给数组...
  • 计算机等级考试二级VB考点:动态数组及声明建立动态数组的方法是:利用Dim、Private、Public语句声明括号内为空的数组,然后在过程中用ReDim语句指明该数组的大小。下面是小编为大家带来的关于动态数组及声明的知识...
  • 最近实现tensorflow模型转换为caffe前向计算的时候存在一个数据维度的问题,即tf的数据格式一般习惯把channel放在最后一维,caffe一般放在第一维;即将一个dxc的二维矩阵转置成为cx...循环过程需要找到后继节点;int...
  • VB中的数组

    千次阅读 2011-09-16 09:26:39
    5.1 数组的概念 1.引例  求100个学生的平均成绩及超过平均成绩的人数。  如果用一般变量来表示成绩,需要用100个变量,如:mark1、mary2、……mark100。若用数组,可以只用一个来表示mark(1  To ...
  • VB-数组、集合、泛型

    2019-06-24 16:09:59
    变量、数组、集合、泛型的发展 最开始用内存中一个位置映射一个值,用变量来“使用”这个值。 进一步发展,用变量来引用一组值,这就是数组。由数组概念,发展出链表、堆、栈,进行排序、检索等。 但这并不能完全...
  • '初始化查询字符串 For i = 0 to UBound(Ary) '从0循环数组最大下标 sql = sql &amp; Ary(i) &amp; "," '将数组中每个值加在查询字符串后面 Next sql = Left(sql,Len(sql)-1) &amp; "...
  • Vb.net 利用数组进行组合查询

    千次阅读 热门讨论 2014-06-09 15:15:41
    以前,再用vb6做机房收费系统的时候,组合查询是一个难点。很不容易理解,但是作完之后会有一种特别舒服的感觉。加入三层架构之后的机房收费系统,我只能说,更加的灵活了。    在进行组合查询之前,在做其余的...
  • foreach循环能否修改数组问题解析

    千次阅读 2019-07-16 09:52:21
    首先抛出结论:如果foreach循环操作的数据的类型是普通数据类型,则在foreach中修改数组内容无效;如果foreach循环操作的数据类型是引用类型,则修改数组内容有效。(建议:foreach只用于遍历,需要操作数组时直接...
  • 本来从MSFlexGrid或MSHFlexGrid导出数据到Excel中,是一个非常简单的问题,但论坛里还是经常有人问如何导出,有的虽然知道用单元格赋值方式循环导出,但速度太慢,因此写了一个通用的数据导出函数,由于以数组方式一...
  • VB.NET里奇怪的数组赋值现象

    千次阅读 2004-10-27 23:44:00
    今天在写程序过程中发现了.NET里的一个奇怪现象,就是给数组数组赋值时竟然是"指向数组的地址",即数组数组赋值时不是生成一个新的值后传给数组保存,而是传给该数组的地址给数组.打个比方:有数组A和数组B.现在把...
  • 传址: Dim arr1() As Object = {"string1", "string2", "string3"}Dim arr2() As Object = arr1传值: ...Dim arr1() As Object = {"...}Dim arr2() As ...
  • vb第八章《数组》课后习题 求指正

    千次阅读 2019-02-08 15:13:00
    1、从键盘上输入10个整数,并放入一个一维数组中,然后将其前5个元素与后5个元素对换,即:第1个元素与第10个元素互换,第2个元素与第9个元素互换……第10个元素与第1个元素互换。分别输出数组原来各元素的值和对换...
  • package ok; ...//将数组转化为字符串 } public int[] getArray(int length) { int[] nums=new int[length]; for(int i=0;i;i++) {nums[i]=(int)(Math.random()*100);} return nums; } }
  • http://210.27.228.219/ComputerManage/PhyItem/phytwo.htm 大学计算机实验 (VB语言) http://www.cnblogs.com/xiaoqun/ VB.NET入门 写复杂点
  • VB讲课笔记08:数组

    千次阅读 2018-03-12 18:01:30
    VB讲课笔记08:数组学习目标:理解数组的概念、掌握数组的声明、引用方法,掌握数组的使用以及与数组有关的常用算法;了解控件数组的概念、声明和使用。一、数组概念(一)数组定义数组是高级程序设计语言中数据组织...
  • C#实现控件循环赋值

    千次阅读 2009-10-11 19:54:00
    【转】http://blog.sina.com.cn/s/blog_4b4570920100cah8.html http://dev.csdn.net/develop/article/20/20241.shtm DotNet里取消了控件数组,这让习惯了使用VB控件的程序员非常不适应。有什么办法能够实现控件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,148
精华内容 2,059
关键字:

vb数组循环赋值