VBA 陣列成員賦值時,語法錯誤,缺少 As,請求幫助

2025-03-16 03:40:23 字數 5765 閱讀 6928

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倍 拓展資...

考研的分陣列成,考研分數構成

考研初試考試內容 英語 政治 業務課一 業務課二 分。政治 分 政治理論課 馬原分 毛中特分 史綱分 思修分 形勢與政策分 英語 分 英語滿分各為分 完型分 閱讀理解分 小作文分 大作文分 數學 分 數學 其中理工科考數。一 工科考數。二 經管類考數三 滿分為分。數一的考試內容分佈 高數 分 線代 ...