1樓:網友
在 for each .selecteditems ..next 迴圈中動態陣列name沒有增長局旅。因為變數gg=1沒有變化。
dim name() as string
dim aa as variant
dim gg as integer
gg = 1
set dig =
with dig
initialfilename = range("f1").value &
allowmultiselect = trueif .show = 1 then
for each aa in .selecteditemsredim preserve name(1 to gg) as string '注意這個語句修改啦!
name(gg) =cstr(aa)
gg = gg + 1 '注意新增中蘆了這個語句。
賣臘帶 next
end if
end with
2樓:景白安
gg=1那裡怎麼跟宣告同一行了。放到下一行試試吧。
vba陣列怎麼賦值?
3樓:教育仁昌
工具/材料:microsoft office excel2016版,excel**。
1、首先選中excel**中要陣列賦值的單元格內容。
2、然後在該介面中,點選「插入」裡「表單控制項」裡「按鈕」選項。
3、再者在該介面中,在**中生成按鈕控制項,修改控制項名稱。
4、其次在該介面中,點選「檢視**」選項。
5、繼續在vba介面中,輸入定義一維陣列的語句。
6、然後在vba介面中,輸入給單元格賦值一維陣列的語句。
7、最後在該介面中,單元格里成功顯示陣列賦值結果。
4樓:永清韓餘
excel vba陣列賦值主要分為一維陣列賦值和二維陣列賦值兩方面來講,多維陣列賦值只要沿用二維的方法即可。在將vba 陣列賦值的方法之前,先說下為什麼要用陣列的方法來寫程式吧。使用excel vba陣列賦值的主要目的是為了提高程式執行效率,相信用vba程式設計的童鞋都遇到過程式執行過慢的問題,其中最主要的乙個原因就是excel vba程式從頭至尾都在操作物件。
用excel vba對陣列進行賦值,即是將物件的值及相關屬性,全部儲存到記憶體中,然後在記憶體裡執行其他程式,這樣速度會提高非常多。好了,下面說怎麼給excel vba陣列進行賦值吧excel vba一維陣列賦值的方法int arr(5)=說明:括號中的5是指陣列長度,固定陣列在最開始確定好陣列長度,使記憶體分配好空間,免去重定義陣列長度,效率會高些。
如果不定義陣列長度的話,後期可以使用redim來更改。excel vba二維陣列賦值的方法arr = arr = range(sheets("文字1").range("a1"), sheets("文字1").
range("a" & cells(65536, 1).end(xlup).row))說明:
兩種賦值方法如上,乙個是賦予固定值,另乙個是將某區域內數值全部匯入。excel vba重新定義陣列的方法redim preserve arr(j)最後說下excel vba二維陣列取資料上限的程式,如下,不過要先確定好你的陣列是從0開始計數還是從1開始計數的,上面所講陣列賦值的例子都是從1開始計數的。
5樓:許詩文
字串陣列的定義:
dim arr(1 to 3) as string如此定義,但是不能直接給陣列賦值。
如果想直接給陣列直接賦值,需要如下操作:
dim arr() as variant
arr=array("a","b","c")
6樓:網友
可以直接十宗罪array()賦值。
或者使用**區域複製。
arr=[a1:m8]
或者是設定了上下屆的陣列對陣列,逐個迴圈賦值。
7樓:網友
無規律的資料,可以用array()函式:
dim st
st = array(5, 23, 24, 26, 30, 5, 31, 24, 26, 28)
下標從0開始,需要其他的下標,可以先用array賦值另乙個陣列,然後再用迴圈賦值給 st
8樓:雯吧喬
答:二維陣列賦值有兩種方法,第一種方法是單元格區域裝入二維陣列,如:
arr=range("a1:b19")就可以把單元格區域的值裝入陣列arr
第二種就是通過迴圈裝入,乙個個數值裝入。例:
向二維陣列寫入資料和讀取。
dim x as integer, y as integerdim arr(1 to 5, 1 to 4)for x = 1 to 5
9樓:傷心
'向vba陣列中寫入資料。
1、按編號(標)寫入和讀取。
sub t1() '寫入一維陣列。
dim x as integer
dim arr(1 to 10)
arr(2) = 190
arr(10) = 5end sub
sub t2() '向二維陣列寫入資料和讀取。
dim x as integer, y as integer
dim arr(1 to 5, 1 to 4)
for x = 1 to 5
for y = 1 to 4
arr(x, y) = cells(x, y)next ynext xmsgbox arr(3, 1)end sub
2、動態陣列sub t3()dim arr()dim rowrow = sheets("sheet2").range("a65536").end(xlup).row - 1
redim arr(1 to row)
for x = 1 to row
arr(x) = cells(x, 1)next xstopend sub
3、批量寫入。
sub t4() '由常量陣列匯入dim arrarr = array(1, 2, 3, "a")stopend sub
sub t5() '由單元格區域匯入dim arrarr = range("a1:d5")stopend sub
在excel vba裡, 定義陣列並賦值,編譯錯誤.請高手指點.
10樓:匿名使用者
陣列賦值不能直接這樣用 等於 某個單元格區域……要通過迴圈語句逐個賦值……考慮修改如下:
dim aa() as double
redim arr(1 to 1036)
for i = 1 to 1036
arr(i) = cells(i, 8)
nextstop
由於你使用了 動態陣列 所以在賦值前 必須給它乙個重新設定範圍的語句 redim……
11樓:網友
自己以前學習的東西給你看一下:你給的語句如果要付值應該這樣寫:
dim aa() as arr
aa()="h0:h1036")'這裡就把h0:h1036付給了aa()這個陣列!已經有值,只是涉及到讀取問題了,看下面的吧:
12樓:excel開發
要乙個乙個地進行賦值,另外h0這個單元格是不存在的,至少從h1開始吧。
關於vba 陣列 賦值 與引用的問題。、、
13樓:網友
arr(n) = cells(k, "k").row這裡獲得行號沒問題,問題出在陣列上限可能溢位。
過程開始只定義了 arr(1 to 10)如果 j 迴圈中,符合條件的單元格超過 10 個,那麼 arr(n) 就溢位了。
而已經被註釋掉的 redim preserve arr(n) 放在那裡也沒用,應當放在 n = n +1 之後,隨時擴充 arr 上限才行。
14樓:網友
陣列的地方沒問題啊, 要麼檔案發過來看看 191180776
excel vba中 給陣列賦值的乙個小問題
15樓:網友
vba陣列賦值方式:
字串陣列的定義:
dim arr(1 to 3) as string如此定義,但是不能直接給陣列賦值。
如果想直接給陣列直接賦值,需要如下操作:
dim arr() as variant
arr=array("a","b","c")賦值格式:
例如,給變數a賦值乙個數為12,則格式為:a = 12 [注意:變數(即a)只能是一字母,而賦予的值可以是乙個式子,當它是式子時,a的值就是這個式子的結果。
16樓:網友
很簡單的,你只距成功差一點。
dim ma
ma = array(37, 11, 3, 0, 1, 5, 31, 10, 35, 16)
msgbox ma(0)
這樣試試看!!!
關於vba陣列賦值
17樓:網友
無規律的資料,可以用array()函式:
dim st
st = array(5, 23, 24, 26, 30, 5, 31, 24, 26, 28)
下標從0開始,需要其他的下標,可以先用array賦值另乙個陣列,然後再用迴圈賦值給 st
vba中如何用excel表中的資料給陣列賦值
18樓:浩哥奕弟
excel表的單元格區域是乙個二維陣列。
dim arr
arr="d7:d9")
這時的arr得到的是二維陣列。
你要轉換成1維陣列,先宣告乙個動態陣列再重定義為1維陣列dim brr()
redim brr(1 to ubound(arr))'再重新將二維轉一維。
for i = 1 to ubound(arr)brr(i)=arr(i,1)
next如果你是要間隔寫進去。
for i = 1 to ubound(arr) step 2brr(i)=arr(i,1)
next
vba陣列怎麼賦值
19樓:網友
1、開啟乙個excel的檔案,在**中輸入簡單的**,比如學生身高**,如下圖所示。
2、接著,在**中輸入一維陣列的說明文字,滑鼠左鍵單擊【開發工具】選單標籤,在vba控制項下拉選單中,並選擇按鈕控制項,如下圖所示。
3、然後,在**中繪製出按鈕控制項,並修改控制項名稱,比如使用一維陣列的名稱,如下圖所示。
4、接著,選擇按鈕控制項,並滑鼠左鍵單擊【檢視**】按鈕,如下圖所示。
5、然後,在**視窗中輸入vba語句,比如輸入定義一維陣列的語句,並給一維陣列賦值,如下圖所示。
6、接著,在**視窗中,輸入一維陣列給單元格賦值的vba語句,如下圖所示。
7、最後,在設計視窗上,滑鼠左鍵單擊按鈕,可以看到**中的,通過vba程式的一維陣列,並輸出到身高的單元格中,顯示出資料了,如下圖所示。完成效果圖。
20樓:陽光上的橋
陣列可以單個賦值,例如:
dim a(3)
a(1)=1
a(2)=2
a(3)=3
也可以使用array一次性賦值,例如:
dim aa=array(1,2,3)
還可以從**進行復制,例如:
dim aa = range("a1:d4")
vba中間帶大括號陣列公式怎麼寫
如果套用 陣列公式,可以錄製巨集 或者寫為 純 如何在vba中編寫有變數的陣列公式。10 前一句寫入陣列公式,後一句公式向下填充,最後用迴圈清除0值的單元格資料 如下 sub tt range be2 formulaarray index b b,small if match b 1 b 337,b...
用1,357911131517用這陣列成三
這是一bai組等差數列的數,可以根據du 等差數列zhi性質求解。兩兩相加的情況 dao1 17 3 15 版3 15 5 13 5 13 11 7四四相加 1 17 3 15 5 13 7 11中位數是9,以9為核心,權距離他相等的數相加,結果是相等的。等差數列的兩項之和,是等差中項的2倍 拓展資...
考研的分陣列成,考研分數構成
考研初試考試內容 英語 政治 業務課一 業務課二 分。政治 分 政治理論課 馬原分 毛中特分 史綱分 思修分 形勢與政策分 英語 分 英語滿分各為分 完型分 閱讀理解分 小作文分 大作文分 數學 分 數學 其中理工科考數。一 工科考數。二 經管類考數三 滿分為分。數一的考試內容分佈 高數 分 線代 ...