題目要求貼上來了,想問我的程式邏輯哪里錯了
遇到兩個問題
1 賦區域給陣列后總是說陣列值下標越界,可能是陣列為空,但實際上賦值的區域不為空的
2 后來又說range作用于worksheet失敗
搞了一下午也弄不清楚,
worksheets(作業簿名字).range(cells(),cells())
這樣的表達是錯的嗎?如果不能這樣參考該怎么改正呢?有有空又會的嗎?第一次提問分數不多,萬分感謝愿意回答的同學





uj5u.com熱心網友回復:
Sub d()
Dim j As Long, i As Long, name As String, wname As Worksheet, name1 As String, rng As Range, name2 As Range, a()
j = 2
Worksheets("出席統計").Activate
For j = 2 To 22
name = Cells(1, j).Value
Set wname = Worksheets(name)
Set rng = wname.Range(Cells(3, 2), Cells(3, 2).End(xlDown))
a = rng
i = 1
For i = LBound(a) To UBound(a)
Set name2 = Worksheets("出席統計").Cells.Find(name1)
If Not name2 Is Nothing Then
name2.Offset(0, j - 1).Value = "yes"
End If
Next i
Next j
這是程式
uj5u.com熱心網友回復:
然后這個式子里,end(xldown)顯示-4121,這又是為什么uj5u.com熱心網友回復:
Excel運行這么大的表真不會出問題嗎,還有就是我是不是理解成 set wname = worksheets(name)這段代碼是你想參考的一個或者多個表,而括號里的name應該是一個或多個表的表名,所以會出現作用物件錯誤的提示。我也是查了下代碼怎么用,具體沒有運行過,希望對您有所幫助。
uj5u.com熱心網友回復:
嗯嗯對,但是當我簡化,不使用回圈,在一個作業表參考另一個表格的區域時,她仍然報錯
uj5u.com熱心網友回復:
答案代碼更為復雜,它是在統計表里一個一個找人名,每次選中人名再打開后面22張會議記錄一個一個找是否有相同值
uj5u.com熱心網友回復:
a=rng這里錯了,a是 陣列,rng是非陣列物件,不可以這么賦值;uj5u.com熱心網友回復:
已解決啦,不用回復啦轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/33335.html
標籤:VBA
上一篇:VBS命令
