VBA整型變數問題,關於VBA中變數問題!

2023-01-01 16:20:13 字數 4797 閱讀 4789

1樓:匿名使用者

不用那麼麻煩~如果你只是想比較單元格顯示的內容的大小的話只要用cells(i,j).text來代替cells(i,j).value就可以了~cells的預設屬性是value,所以cells(i,j)表示的是cells(i,j).

value~所以你的**可以改成:

dim i as integer,j as integer,s,n as integer

for i=1 to 4'行

s=0for j=1 to 4'列

if cells(i,j).text>s then s=cells(i,j).text:n=j

next j

cells(i, n).interior.color = rgb(255, 255, 0)

next i

問題補充:高手你還在嗎 你有qq嗎 能和你聊一下嗎?

2樓:匿名使用者

不好意思,昨天晚上有事沒來得及給你寫,剛寫了一下,測試過沒有問題,你看一下:

'**開始******************************==

sub temp()

dim irow, icolumn, imax, iimaxcolumn, m, n, i, j as integer

dim b() as integer

m = 10 '行

n = 10 '列

range("a1:" & chr(64 + n) & m).select

with selection.interior

.pattern = xlnone

.tintandshade = 0

.patterntintandshade = 0

end with

for irow = 1 to m

iimaxcolumn = 1

imax = round(cells(irow, 1), 2)

for icolumn = 2 to n

if round(cells(irow, icolumn), 2) > imax then

j = 0

iimaxcolumn = icolumn

imax = round(cells(irow, icolumn), 2)

else

if round(cells(irow, icolumn), 2) = imax then

j = j + 1

redim preserve b(j) as integer

if j = 1 then

b(j - 1) = iimaxcolumn

imax = round(cells(irow, icolumn), 2)

end if

b(j) = icolumn

imax = round(cells(irow, icolumn), 2)

end if

end if

next icolumn

if j = 0 then

cells(irow, iimaxcolumn).interior.color = rgb(255, 255, 0)

else

for i = 0 to j

if imax <> "" then cells(irow, b(i)).interior.color = rgb(255, 255, 0)

next i

end if

next irow

cells(1, 1).select

end sub

'**結束******************************==

3樓:

格式化結果!比如

s = format(0.546885524,"0.00")

這樣就能保留兩位小數點了,s的結果就變成了 0.54 了

4樓:匿名使用者

把判斷那行"if..."的前半部分,裡邊改成:

if int(100*cells(ij))>int(100*s)

後半行一樣,我手裡沒裝環境,如果不對請在問題補充裡告訴我。

5樓:匿名使用者

dim i as integer,j as integer,s,n as integer

for i=1 to 4'行

s=0for j=1 to 4'列

if round(cells(i,j),2)>s then s=round(cells(i,j),2):n=j

next j

cells(i, n).interior.color = rgb(255, 255, 0)

next i

子易空間站 - excel培訓專家

為什麼vba的integer變數最大是32767?

6樓:扈懷煒

vb的整型取值範圍是-32768 到 32767 之間,這是因為整型數佔2個位元組,16位,其中最高位表示符號位,0表示整數,1表示負數,最大的正數為: (0111 1111 1111 1111)b,化成十進位制就是 32767.

如果在程式中需要儲存的資料超過-32768和32767這個範圍,可以使用長整型 long,長整型佔用的空間是4個位元組,其取值範圍是 -2147483648 ---- 2147483648,這個取值足夠表示。

7樓:砍侃看

因為vba中integer是16位的,16位二進位制數只能表示0-32767之間的數字

8樓:學習就能進步

樓上說得對,16位的,那就是2^16,65536,有符號的話最大的就是32767

資料庫 vba 整型。長整型。單精度 雙精度 是什麼意思 請高手用通俗的語言解釋 不要用計算機裡的說法來解釋

9樓:御含靈

◆ integer 資料型別

integer 變數儲存為 16位(2 個位元組)的數值形式,其範圍為 -32,768 到 32,767 之間。integer 的型別宣告字元是百分比符號 (%)。

也可以用 integer 變數來表示列舉值。列舉值可包含一個有限集合,該集合包含的元素都是唯一的整數,每一個整數都在它使用時的上下文當中

有其特殊意義。列舉值為在已知數量的選項中做出選擇提供了一種方便的方法,例如,black = 0,white = 1 等等。較好的程式設計作法是使

用 const 語句將每個列舉值定義成常數。

◆ long 資料型別

long(長整型)變數儲存為 32 位(4 個位元組)有符號的數值形式,其範圍從 -2,147,483,648 到 2,147,483,647。long 的型別宣告字元為和號 (&)。

◆ single 資料型別

single(單精度浮點型)變數儲存為 ieee 32 位(4 個位元組)浮點數值的形式,它的範圍在負數的時候是

從 -3.402823e38 到 -1.401298e-45,而在正數的時候是從 1.401298e-45 到 3.402823e38。

single 的型別宣告字元為感嘆號 (!)。

◆ double 資料型別

double(雙精度浮點型)變數儲存為 ieee 64 位(8 個位元組)浮點數值的形式,它的範圍在負數的時候是

從 -1.79769313486231e308 到 -4.94065645841247e-324,而正數的時候是

從 4.94065645841247e-324 到 1.79769313486232e308。double 的型別宣告字元是數字符號 (#)。

10樓:匿名使用者

123 就是整型,長整型就是比整型表示的數字範圍更大,單精度一般用來表示小數,雙精度就是比單精度表示得更精確,一般就是小數點後面可以有更多位數。

關於vba中變數問題!

11樓:

不影響,原因如下:

1、在過程中宣告,該變數只能在該過程中使用,其他過程中不能使用這個變數和常量,這中變數成為區域性變數或過程級變數

2、call 語句:將控制權轉移到一個 sub 過程,function 過程,或動態連結庫 (dll)過程。

3、臨時變數的值可以傳給call呼叫的過程

12樓:姓王的

sub裡面的變數都只在本過程內有效,不會衝突的

vba模組中定義的整數型公共變數,在視窗中使用提示型別錯誤

13樓:

使用時超出了整數範圍。建議直接dim不寫型別。等找到合適的型別再具體宣告

14樓:小李無刀

你**是怎麼的寫的呢

excel 在vba中怎麼定義數值變數

vba變數宣告問題

15樓:不想起名字了

是的如果在 dim語句中沒有指明,預設variant一般情況下為了清楚

一行只定義一個變數

dim i as integer

dim j as integer

dim k as integer

dim i,j,k as integer 相當於dim i

dim j

dim k as integer

16樓:七色海潮

剛才查了下資料 確實是只有k是integer,另兩個 是variant

17樓:沉思星空下

是的,兩者效果不一樣

關於VBA的問題,一個關於VBA的問題

樓主,你的問題在於你把 select case d14中的d14認為是單元格d14,其實d14根本就不是你的單元格d14,而是一個未宣告和賦值的variant變數,其值預設為 字串,它是永遠大於6的。所以你的e18永遠等於999.不等於1000是因為你在we we 1這個計數發生前,就把值賦給了e1...

VBA中RANGE如何引用變數,excel VBA中 Range函式將列作為變數怎麼表示?

一項技能的學習過程中,最難的有兩個時間段,沒入門前不知道怎麼學,入門後不知道怎麼快速提高。反而當技術提高到一個層次後,能融會貫通,再看什麼都不那麼難了。我們每天講解一個vba的一個知識點,我們一起學習,共同進步。我們都知道range物件是excel應用程式中最常用的物件,一個range物件代表一個單...

VBA問題求教

private sub worksheet change byval target as range if sheet1.range b1 value 2 and sheet1.range a1 value 1 then sheet2.activate 啟用sheet2表 sheet2.range ...