1樓:庹甜恬
一項技能的學習過程中,最難的有兩個時間段,沒入門前不知道怎麼學,入門後不知道怎麼快速提高。反而當技術提高到一個層次後,能融會貫通,再看什麼都不那麼難了。我們每天講解一個vba的一個知識點,我們一起學習,共同進步。
我們都知道range物件是excel應用程式中最常用的物件,一個range物件代表一個單元格、一行、一列、包含一個或者更多單元格區域(可以是連續的單元格,也可以是不連續的單元格)中選定的單元格,甚至是多個工作表上的一組單元格,在操作excel 內的任何區域之前都需要將其表示為一個range物件,然後使用該range物件的方法和屬性。range和cells都可以表達單元格物件,只是range的屬性和方法比cells的多。
在vba中經常需要引用單元格或單元格區域區域,主要有以下幾種方法。
1-1 使用range屬性
vba中可以使用range屬性返回單元格或單元格區域,如下面的**所示。
1 sub rngselect()
sheet1.range("a3:f6, b1:c5").select
003 end sub
**解析:
rngselect過程使用select方法選中a3:f6,b1:c5單元格區域。
range屬性返回一個range物件,該物件代表一個單元格或單元格區域,語法如下:
range(cell1, cell2)
引數cell1是必需的,必須為 a1 樣式引用的巨集語言,可包括區域操作符(冒號)、相交區域操作符(空格)或合併區域操作符(逗號)。也可包括美元符號(即絕對地址,如「$a$1」)。可在區域中任一部分使用區域性定義名稱,如range("b2:
lastcell"),其中lastcell為已定義的單元格區域名稱。
引數cell2是可選的,區域左上角和右下角的單元格。
執行sub rngselect過程,選中a3:f6, b1:c5單元格區域
2樓:淡了流年
如果你的那個colletter變數代表的是一個列號字母。
如果是用vba,則對range的select 操作是無意義的,不用選擇直接操作就選擇單行整行
range("1:1")
單列,range("a:a")
遍歷range中的每個一單元格
dim rng as range
dim trng as range
set tng=range("a:a")
for each trng in rng
debug.print trng
next
set rng=nohing
set trng=nothing
3樓:匿名使用者
如果你的那個colletter變數代表的是一個列號字母,可以這樣寫range("d2:" & colletter & "9").select
如果你的colnum變數是一個數字,可以這樣寫range("d2:" & cells(2,colnum).address(0,0)).select
注意:在vba程式設計當中,所有的變數不可能寫在引號裡面,寫在引號裡面就成了字串了
vba 中range如何引用變數?
4樓:淡了流年
如果你的那du個colletter變數代表zhi的是一個列號字母。
如果dao是用vba,則對range的內select 操作是無意義的,不用選擇容直接操作就選擇單行整行
range("1:1")
單列,range("a:a")
遍歷range中的每個一單元格
dim rng as range
dim trng as range
set tng=range("a:a")
for each trng in rng
debug.print trng
next
set rng=nohing
set trng=nothing
excel vba中 range函式將列作為變數怎麼表示? 5
5樓:歲月不及你動人
range型別的函式有多種形式,具體如下:
1.您可以嘗試用range(cells(行1,列1),cells(行2,列2))這種形式,比較靈活;
2.也可以用cells(行,列)這樣的形式表示單元格;
3.還可以用columns(列)表示一列;
4.也可以用range(columns(列1),columns(列2))來表示連續的多列。
這裡的"行"和"列"都是整數,不是字母,數字有時會比字母更靈活。
6樓:一年孤獨
直接用就是了:
function getrange(col as string)
getrange = workbooks(1).sheets(2).range(col & "2:" & col & "2012")
'或者'getrange = workbooks(1).sheets(2).range(replace("a2:a2012","a", col))
end function
getrange("b") 'workbooks(1).sheets(2).range("b2:b2012")
getrange("ab") 'workbooks(1).sheets(2).range("ab2:ab2012")
7樓:匿名使用者
首先range是屬性,不是函式,它本身表示一個區域引用,而不是說它作為函式返回一個區域。
將列作為變數一般可以用cells(row,col)屬性中的col(列號)作為變數,作為區域引用的range屬性可以用range(cells(row1,col1),cells(row2,col2))來表示
8樓:浩哥奕弟
從一個工作表中提取資料到另一個工作表,一般思路是從第一個表中將資料裝入陣列,再將陣列裝入第二個表。
例如:arr=sheet1.range("a1:a100")
sheet2.range("a1").resize(ubound(arr),ubound(arr,2))=arr
9樓:匿名使用者
workbooks(1).sheets(2).range(cells(2,m), cells(2012,m)).value
range 引用單元格時,變數只能為行如range("a" & m) 表示a列第m行的單元格
10樓:匿名使用者
親測以下方式可行
sub test()
dim colname1 as string, colname2 as string, colnum as long, a() as long
dim i as integer, j as integer
redim a(1 to 5, 1 to 2)
for i = 1 to 5 '給aa陣列賦值
for j = 1 to 2
a(i, j) = i * j
next
next
for i = 4 to 10 step 3 '從4列即「d」列開始
colnum = i * 1 '起始列的變數表示
colname1 = getexcelcolumn(i * 1) '起始列變數名稱
colname2 = getexcelcolumn(i * 1 + 1) '終止列變數名稱
sheets("sheet1").range(colname1 & "1:" & colname2 & "5") = a
'將陣列a賦值到 range:d1:e5, g1:h5,j1:k5
next
end sub
function getexcelcolumn(columnnumber as long)
dim div as long, colname as string, modulo as long
div = columnnumber: colname = vbnullstring
do while div > 0
modulo = (div - 1) mod 26
colname = chr(65 + modulo) & colname
div = ((div - modulo) / 26)
loop
getexcelcolumn = colname
end function
11樓:
range型別的函式有多種形式,您可以嘗試用range(cells(行1,列1),cells(行2,列2))這種形式,比較靈活,也可以用cells(行,列)這樣的形式表示單元格,還可以用columns(列)表示一列,也可以用range(columns(列1),columns(列2))來表示連續的多列,這裡的"行"和"列"都是整數,不是字母.數字有時會比字母更靈活
您補貼上來的內容是行不通的,區域賦值不可以直接進行,而是要對該區域內的每一個單元格賦值,對於您想表達的意思,有必要外加一個for迴圈來解決這個問題,最關鍵的賦值語句應該是類似
range(....).cells(r,c)=range(***x).cells(r,c)
這樣的語句
12樓:三井熊
range(變數a & "3:" & 變數a & "2012")
13樓:匿名使用者
range(cells(3,i),cells(2012,i)) , i 可以是123,代表a,b,c
excel vba中range函式把列作為變數怎麼表示?
14樓:歲月不及你動人
range型別的函式有多種形式,具體如下:
1.您可以嘗試用range(cells(行1,列1),cells(行2,列2))這種形式,比較靈活;
2.也可以用cells(行,列)這樣的形式表示單元格;
3.還可以用columns(列)表示一列;
4.也可以用range(columns(列1),columns(列2))來表示連續的多列。
這裡的"行"和"列"都是整數,不是字母,數字有時會比字母更靈活。
15樓:李夏璇鈕浩
workbooks(1).sheets(2).range(cells(2,m),
cells(2012,m)).value
range
引用單元格時,變數只能為行如range("a"&m)表示a列第m行的單元格
VBA整型變數問題,關於VBA中變數問題!
不用那麼麻煩 如果你只是想比較單元格顯示的內容的大小的話只要用cells i,j text來代替cells i,j value就可以了 cells的預設屬性是value,所以cells i,j 表示的是cells i,j value 所以你的 可以改成 dim i as integer,j as i...
js(A)中如何引用js(B)中的變數
這樣寫就可以了 你在一個函式內 var宣告的變數,是不能直接在例專外一個函式內使用的你在函式外宣告變屬量,那在函式內就可以使用了例外,要注意下 的順序 這樣取不到!把var abc 寫在function a 外面嘛,何必要寫在裡面呢?這樣的話你把abc定義成全域性變數就可以了 如何在一個js檔案中引...
Excel請問RANGE中變數的寫法
陽光上的橋 range的引數是字串,要使用變數是可以的,下面舉兩個例子 dim x,y,z x a y 2 z a2 示例一 使用部分變數的三種情況 msgbox range x y addree a2msgbox range d y addree d2msgbox range x 3 addree...