vb在excel程式設計問題

2021-03-12 09:34:48 字數 1110 閱讀 5748

1樓:楓默凍凍79磭

dim n as longwith sheet4 sheet2.[h1:k1].

copy .[k1] .[p1] = "=counta(a:

a)" .[k2] = "=iferror(if(f2="""",vlookup(d2,貼上相應資料至此!62616964757a686964616fe4b893e5b19e31333335333161c:

k,6,0),vlookup(f2,貼上相應資料至此!c:k,6,0)),"""")" .

[l2] = "=vlookup(d2,貼上相應資料至此!c:k,7,0)" .

[m2] = "=vlookup(d2,貼上相應資料至此!c:k,8,0)" .

[n2] = "=vlookup(d2,貼上相應資料至此!c:k,9,0)" n = .

[p1] .[k2:n2].

autofill destination:=range("k2:n" & n), type:

=xlfillformulaend with 至少有如下幾處錯誤:

1、公式中有"",在**中一定要成對增加,否則,**無法區分哪個"與哪個"是一對。

你原來的.[k2]="=iferror(if(f2="",vlookup……「體現比較明顯。

2、:=range("k2:n2" & n)這個寫法也是錯誤的,假設n為100,則變成了range("k2:n2100")了

3、**寫的過於繁瑣,對同一個物件反覆操作時,儘量使用with……end with ,一方面便於閱讀、修改**,另一方面也將大大提高**執行速度。

4、定義變數,最好放在**開始行(養成好的習慣比較重要)

5、n定義為long後,預設為0,所以不用再重新賦值n=0

6、也是最要命的,既然vba**,就儘量採用vba**語言編寫程式,不要再使用工作表函式,這樣會大大降低表的運算速度。(**也用工作表函式,還不如直接在表中寫入函式)同時,有些工作表函式在**中執行結果與工作表存在一定的差異。

如上,vlookup函式就完全可以用vba**中range.find方法。

2樓:匿名使用者

圖呢?請詳細描述問題

vb程式設計計算,VB程式設計計算 1 2

private sub command1 click dim i as integer,j as integerdim l as long,h as longfor i 1 to 10 h 1 for j 1 to i h h j next l l h next print l end sub pr...

vb程式設計教程答案,vb程式設計教程答案

option explicit private sub command1 click dim a as integer dim i,j,n redim a 9,9 for i 1 to 8 print tab 25 i 2 for j 1 to i a i,1 1 a i,i 1 a i 1,j 1...

VB程式設計的datagrid控制元件問題,高手請進 急急急

重新整理ado 和 datagrid adodc1.refresh datagrid1.refresh 這裡是顯示資料.你要是用一個ado控制元件的話,就要每次改變ado資料來源.我瞭解你的意思,不同條件,就代表ado的資料來源變了哇,你得每次改變資料來源,改變後重新整理ado控制元件,這樣就可以出...