vba物件變數未設定,vba 物件變數或with塊未設定

2022-05-26 18:35:28 字數 6300 閱讀 9694

1樓:阿填雨

sub sp()

sheets("sheet1").range("b1:b10").find(what:="男").entirerow.copy

activesheet.paste

end sub

不過估計你要的是在某列查詢包含某字元的資料然後一次過複製貼上吧,附件是陣列+like函式做的,點選「執行」按鈕即可。

2樓:姓王的

worksheets("sheet1").range("b" & 1).find(what:="男").entirerow.select

單元格應該是("b" & i),不應該是("b" & 1),但不是什麼,只要單元格不為「男」,就會出錯。因為用find方法查詢不成功時返回物件為空nothing,後面的屬性語句就會出錯

3樓:匿名使用者

查詢方法要先判斷有沒有找到, 找到了才能執行操作, 不然就會報錯的sub sp()

dim i as integer

dim j as integer

dim findcell as rangefor i = 1 to 10

set findcell = sheet1.range("b" & i).find("男")

if not findcell is nothing thenj = j + 1

findcell.entirerow.copy sheet2.cells(j, 1)

end if

next

end sub

vba 物件變數或with塊未設定

4樓:依然特雷西

vba 物件變數或with塊未設定是設定錯誤造成的,解決方法為:

1、首先開啟excle軟體,在選單中選擇「開發工具」-》「visual basic」,進入vba的程式設計介面。

2、選擇一個物件,這裡選擇sheet1,新建一個子過程setobgjs。

3、首先是宣告物件變數,通過dim來宣告,和普通變數的宣告很類似,只不過是資料型別變為了object,如: dim obj1 as object。

4、設定該物件變數的值,可以通過set方法來設定,如set obj1 = range("a1")。

5、對這個物件所表示的邊框設定底色,為黃色。

6、最後選擇「執行」按鈕執行。

5樓:匿名使用者

物件變數或 with 塊變數沒有設定(錯誤 91)

建立物件變數有兩個步驟。第一,必須先宣告物件變數。然後必須用 set 語句將一個正確的引用賦值給物件變數。

同樣地,with...end with 塊必須先用 with 語句進入點來執行初始化。此錯誤有以下的原因和解決方法:

試圖使用的物件變數,還沒有用一個正確物件的引用來賦值。

給物件變數指定或再指定一個引用。例如,如果在下列的**中省略 set 語句的話,那麼引用 myobject 將會產生錯誤:

dim myobject as object ' 建立物件變數。

set myobject = sheets(1) ' 建立一個正確的物件引用。

mycount = myobject.count ' 計數值賦給 mycount。

試圖用的物件變數已經被設為 nothing。

set myobject = nothing ' 釋放此物件。

mycount = myobject.count ' 引用了已釋放的物件。

再指定引用給物件變數。例如,使用新的 set 語句給物件設定新的引用。

此物件是正確的物件,但沒有被設定,因為在物件庫中,在 「引用」 對話方塊中沒有被選取。

在 「新增引用」 對話方塊選擇物件庫。

在 with 塊內goto 語句的去向。

不要跳進 with 塊。確保塊使用 with 語句進入點以執行初始化。

當選了 「設定下一條語句」 命令時,在 with 塊內指定了一行。

with 塊必須用 with 語句執行初始化。

6樓:匿名使用者

1、這個錯誤有時候是指所引用的物件並不存在,或者沒有初始化,當繼續使用這個物件的屬性或者方法時,就會出現「物件變數或者with塊變數未設定」的錯誤提示。

2、造成這種錯誤的原因:

1)該引用的物件庫沒有引用,去工具選單下單擊引用,選擇應該引用的物件庫。

2)寫錯了控制元件名,修改成對應控制元件即可。

3)使用資料庫物件時沒有開啟資料庫,設定資料來源,然後開啟資料庫。

7樓:匿名使用者

sheet1.range("g" & f) = sheet2.cells(e.row, 1)『問題出在這個地方

前面加上一句:

if e is nothing then msgbox "沒有找到改資料" :exit sub

sheet1.range("g" & f) = sheet2.cells(e.row, 1)『問題出在這個地方

8樓:網海1書生

1、你要在工程屬性中設定啟動物件為sub main2、你要在工程中引用dao

3、set rsdata = db.openrecord("生產場所資料表")

要改為:set rsdata = db.openrecordset("生產場所資料表")

4、do while not radata.efo要改為:do while not rsdata.eof5、radata.movenext

要改為:rsdata.movenext

好多錯誤啊,按理都是很容易發現的

9樓:匿名使用者

你寫dim adodc as new + 物件型別了嗎(我都不知道你的物件型別)

這是引用部件的人常有的問題,定義變數時不寫"new"

adodc1.recordset.addnew是個方法一旦要使用模組中的方法,定義時一定要加"new"

10樓:天雨下凡

sub t()

dim a as range

dim b as range

set a = range("d14:d22")set b = range("d14:d23")if range("c22") = "男" thena.select

elseif range("c23") = "男" thenb.select

end if

end sub

11樓:匿名使用者

第三第四句改成:

set a = [d14:d22]

set b = [d14:d23]

12樓:太極健

你的sheet1.range("g" & f) 中的f是什麼,變數嗎?

vba 執行提示物件變數或 with塊變數未設定!求大神幫忙看看**

13樓:姓王的

re = cells(2,7)

改為set re = cells(2,7)

14樓:

num從幾開始,要不要定義一下?

excel vba執行巨集時,提示:執行時錯誤'91';物件變數或with塊變數未設定

15樓:匿名使用者

可能原因是在每二行中未find "dm"、"jc"、"lb",你需要對未找到進行處理

比如在巨集前面加上語句

on error resume next

等,看你希望怎麼處理。

16樓:匿名使用者

set rng = thisworkbook.sheets("sheet1").rows("2:2").find("dm")

x = rng.column

set rng = thisworkbook.sheets("sheet1").rows("2:2").find("jc")

y = rng.column

set rng = thisworkbook.sheets("sheet1").rows("2:2").find("lb")

z = rng.column

以上find,確實都能找到結果嗎?

如果都能找到結果,也就是反 返回的rng 不是nothing的話,建議把**發全看看

日常編寫**時,建議**做以下調整:

set rng = thisworkbook.sheets("sheet1").rows("2:2").find("dm")

if rng is nothing then

msgbox "dm:不存在"

else

x = rng.column

endif

17樓:旅遊達人傲傲

回答excel用巨集做查詢動作,如果查詢不到,就出這個錯誤。

修改**前面部分如下:

dim frow as integer

if txt1.value = "" then '先判斷使用者名稱是否為空

msgbox "使用者名稱不能為空!", vbinformation, "系統提示"

exit sub

end if

dim xrng as range

set xrng = sheets("使用者表").range("a3:a53") '再判斷使用者名稱是否不存在

msgbox "無此使用者名稱!", vbinformation, "系統提示"

exit sub

end if

with sheets("使用者表") '最後判斷使用者名稱與密碼是否一致

frow = .range("a3:a53").find(what:=txt1).row

if .cells(frow, 2) > cstr(txt2.text) then

msgbox ("密碼錯誤")

txt1.text = ""

txt2.text = ""

exit sub

end if

希望可以幫到您哦親

更多20條

vba中執行錯誤91:物件變數或with塊變數未設定,請大家幫忙看看。

18樓:知足

ng = range(cells(2, 1), cells(2, 13)).offset(j - 1, 0)

改 set rng = range(cells(2, 1), cells(2, 13)).offset(j - 1, 0)

用途由於微軟office軟體的普及,人們常見的辦公軟體office軟體中的word、excel、access、powerpoint都可以利用vba使這些軟體的應用更高效率,例如:通過一段vba**,可以實現畫面的切換;可以vba6實現複雜邏輯的統計(比如從多個表中,自動生成按合同號來跟蹤生產量、入庫量、銷售量、庫存量的統計清單)等。

19樓:匿名使用者

with selection.interior.color = 65535 '單元格底紋的顏色或圖形物件的填充

end with

這裡錯了吧,selection.interior 這個前面要加上rng 吧

20樓:旅遊達人傲傲

回答excel用巨集做查詢動作,如果查詢不到,就出這個錯誤。

修改**前面部分如下:

dim frow as integer

if txt1.value = "" then '先判斷使用者名稱是否為空

msgbox "使用者名稱不能為空!", vbinformation, "系統提示"

exit sub

end if

dim xrng as range

set xrng = sheets("使用者表").range("a3:a53") '再判斷使用者名稱是否不存在

msgbox "無此使用者名稱!", vbinformation, "系統提示"

exit sub

end if

with sheets("使用者表") '最後判斷使用者名稱與密碼是否一致

frow = .range("a3:a53").find(what:=txt1).row

if .cells(frow, 2) > cstr(txt2.text) then

msgbox ("密碼錯誤")

txt1.text = ""

txt2.text = ""

exit sub

end if

希望可以幫到您哦親

更多20條

物件變數或with塊變數未設定,vba 物件變數或with塊未設定

private sub cmdok click dim username1 as string,username2 as string adodc1.refresh adodc2.refresh username1 text1.textif option1.value thenset text3.d...

金蝶KIS專業版憑證管理裡提示未設定物件變數或with block變數

一般是環境元件沒安裝好的結果,你安裝的時候是否做了環境檢測,是否把檢測到缺少的檔案全部安裝完整。這種情況,只能將軟體解除安裝重新安裝。另外,如果你的是ghost版系統,本身會因為比較精簡,缺少金蝶必須的系統檔案也會出現這問題。付費內容限時免費檢視 回答1 修改計算機名即可為字母開頭,且不超過8個字元...

excel 用VBA設定A列自動顯示當天的日期!

如果需要對多個單元格自動顯示當天日期,那麼選擇單元格區域,輸入以下公式,然後按ctrl enter組合鍵結束。today 快速生成當天日期,且該日期隨著系統時間的變化而變化。詳見附圖。if or b1 c1 d1 now 這個 應該是可以的 如果是顯示數字應該是單元格格式的問題,右鍵單元格格式,選擇...