1樓:匿名使用者
語句本身沒有大的明顯的錯誤,不過有幾個需要注意:
1、變數的申明,vba中允許沒有申明變數就可以使用,但是,個人不推薦這樣使用,因此,可以對相應變數進行修改。
2、counter = counter + cells(x, 7)語句執行時可能出現錯誤,因為你的cells(x,7)可能沒有值,也可能出現值不是數字的情況,具體情況因為不知道你的資料,因此無法完全確定。
2樓:
問題在於你定義的檔名是有引數的,所以,你只能呼叫這個程式要附帶引數。可以改為如下:
sub addif()
dim value as integer
value=value = year(now()) & "-" & month(now()) & "-" & day(now()) '取當前日期。
counter = 0
for x = 2 to 54301
if cells(x, 1) = value thencounter = counter + cells(x, 7)else
counter = counter + 0end if
next
end sub
3樓:匿名使用者
只能猜測,將counter = counter + cells(x, 7)更改為
counter = counter + val(cells(x, 7)) 試試
那你按f8單步執行檢查那一條語句出錯.
4樓:
value 是系統用語,最好不要拿來作為變數,另外cell()中的數字不一定是數字,最好都在前面加上val
5樓:匿名使用者
報什麼 錯
會不會 cells(x, 7)不是數字格式
你程式看起來有些不優化,講講是為什麼做的
excel vba出現錯誤
6樓:
一、實現功能要求:求總分。
1、在excel介面中,初始資料如下
2/72、進入vbe介面中,編寫如下**:
sub onerrorresume()
dim i%
for i = 2 to 6:
sheet4.range("d" & i) = sheet4.range("b" & i) + sheet4.range("c" & i)
next
end sub
3、執行**,則報一下錯誤;錯誤原因為:包含字串型別;
3/7接下來,將對此錯誤進行處理;
4、修改**為:
sub onerrorresume()
dim i%
on error resume next '錯誤時則恢復;
for i = 2 to 6:
sheet4.range("d" & i) = sheet4.range("b" & i) + sheet4.range("c" & i)
next
end sub
4/75、點選插入--形狀,選擇一個形狀;
6、選擇形狀,右鍵指定巨集,選擇剛剛定義的巨集onerrorresume;
5/77、執行巨集;則在有字串的行中,將不執行,繼續執行後面的語句;
6/78、當出現某個錯誤時,直接輸出錯誤位置;
sub onerrorgoto88()
dim i%
on error goto 100 '出現錯誤時,執行某段語句;
for i = 2 to 6:
sheet1.range("d" & i) = sheet1.range("b" & i) + sheet1.range("c" & i)
nexti
exit sub
100:
msgbox ("´íîó³öïöôú" & i & "ðð")
return
end sub
7/7綜上所述,本文提供兩種方法:
1、on error resume next:忽略錯誤;
2、on error goto line:錯誤時跳轉到其他執行語句;
來對錯誤語句進行處理。
7樓:匿名使用者
在可能出錯**前面 新增
on error resume next
一般可以跳過錯誤,繼續執行其他語句。
excel 這段vba**的錯誤在**
8樓:匿名使用者
你的問題不是因為沒有next,而是if沒有對應的end if。解決方法:
1、在每個if的內容語句的下面,加一行 end if
2、把每個if語句的內容語句,接在 tnen 後面,不要換行(這樣可以不要 end if)。
9樓:
條件語句錯,改成如下方式試試
if 條件1
命令1elseif 條件2
命令2elseif 條件3
命令3end if
excel中vba語句糾正
10樓:
最好用遍歷的方法來實現:
sub 比較大小()
dim sh as worksheet
dim y%, n%
n = 0
for each sh in worksheetsfor y = 1 to 2
if sh.cells(y, 2).value <> sh.cells(y + 4, 2).value then n = n + 1
next y
next
for y = 1 to n
sheets.add after:=sheets(sheets.count)
next
end sub
11樓:祕密d情人
sub 比較大小()
dim x as integer
dim y as integer
for x = 1 to 5
for y = 1 to 2
worksheets(x).select
if worksheets(x).cells(y, 2).value <> worksheets(x).cells(y + 4, 2).value then
worksheets.add
end if
next y
next x
end sub
12樓:匿名使用者
dim sht as worksheet 多了個s, worksheets(x)返回的是一個worksheet物件
13樓:匿名使用者
把next改成exit for
excel vba語法錯誤
14樓:匿名使用者
不僅少了括號,正確寫法是:
15樓:我的王是金閃閃
少了一個括號
sub a()
cells(i, j) = worksheetfunction.correl(worksheets("源").range(cells(3, i), cells(65536, i)), worksheets("源").
range(cells(3, j), cells(65536, j)))
end sub
16樓:匿名使用者
range(cells(3,i),cells(65536,i))好像有問題
range()引數需要有""的,應該改成cells
17樓:己霞月
option explicitsub aaa()dim i, j as long '這句最後一個變數後面沒有逗號,而且應該這樣寫 dim i as long ,j as longdim otype, prate as stringdim d as date i = activecell otype = activecell.offset(0, -3) prate = activecell.offset(0, -1) if prate = "快單" then '下面這句修改如下 j = worksheetfunction.
roundup((worksheets("負荷統計").cells(4, 7) + i) / worksheets("負荷統計").cells(10, 12), 0) if j < 6 then d = worksheets("訂單明細").
cells(1, 2) else '修改 d = worksheets("訂單明細").cells(1, 2) + j - 6 end if activecell.offset(0, 8) = d activecell.
offset(0, 7) = d + 11 else '修改 '下面一句 修改 j = worksheetfunction.roundup((worksheets("負荷統計").cells(5, 7) + i) / worksheets("負荷統計").
cells(10, 12), 0) if j < 6 then d = worksheets("訂單明細").cells(1, 2) else '修改 d = worksheets("訂單明細").cells(1, 2) + j - 6 end if activecell.
offset(0, 8) = d activecell.offset(0, 7) = d + 11 end if end sub
excel2016vba巨集錯誤
18樓:姓王的
我只能說紅色代表語法方面的錯誤,就是寫法有問題,比如分號就是問題所在
你這個**還比較複雜,既然一無所知,那就放棄吧,別浪費時間
19樓:陽光上的橋
<修改為<
>修改為>
例如第一個紅色語句修改為:
if py_index(n) < ascid then
我想學EXCEL的VBA基礎知識
從最容易的入手。excel本身提供了一個錄製巨集的功能。在工具 巨集 錄製新巨集,開始錄製後,你的每一步操作都會被記錄下來,按停止錄製後就會生成一個巨集。然後 工具 巨集 巨集 編輯 就會開啟在自帶的visualbasic編輯器中開啟你剛錄製的巨集。將編輯器視窗縮小一點,按f8鍵 執行一步 就可以知...
跪求王陽明的經典語句,跪求王陽明的經典語句 原話
天地扁舟 天,沒有我的靈明,誰去仰他的高?地,沒有我的靈明,誰去俯它的深?天地萬物,離卻我的靈明,變沒有天地萬物了。我的靈明,沒有天地萬物,亦無我的靈明瞭。如此便是一氣流通,如何與間隔得?此句可稱振聾發聵。你未看此花時,此花與汝同歸於寂。你來看此花時,則此花顏色一時明白起來。這句最經典,常用作批判唯...
請問如何用excel的VBA做出,從1 20中任取數的所有組合,總共是125970種,求高手支招,萬謝
如果你只是需要結果的話,可以用函式 combin 20,8 直接求的結果,如果真是要用vba實現的話按照 tat蘿蔔說的做就行了,完善如下 sub zuhe dim times as double for i1 1 to 13 for i2 i1 1 to 14for i3 i2 1 to 15fo...