Board logo

標題: choose and union 疑問 [打印本頁]

作者: jntseng    時間: 2010-8-8 20:37     標題: choose and union 疑問

在VBA 程式中 使用set n=choose(h,union(y,x),union(y1,x),union(y2,x)) ,執行時,此地方會有問題,請教哪裡有問題
詳細程式如下:
Dim x As Range, Y As Range, rng As Range, r As Long '宣告變數
Dim y1 As Range, y2 As Range
For h = 1 To 3
r = Cells(65536, 52 + h).End(xlUp).Row '取的A欄最大列位
Set m = Choose(h, Y, y1, y2)
Set rng = Range("ba2:ba" & r) '取得資料範圍
For Each x In rng '資料範圍內每一儲存格
If x = "" Then '若儲存格值為 ""
If m Is Nothing Then 'Y若不存在
Set m = x  '將Y設定為x
Else '若Y存在
Set n = Choose(h, "Union(Y, x)", "Union(y1, x)", "Union(y2, x)")
  m = n
  End If
End If
Next
If Not m Is Nothing Then m.Delete (xlUp) '若Y存在將Y刪除
Next
作者: Hsieh    時間: 2010-8-8 23:04

Set n = Choose(h, "Union(Y, x)", "Union(y1, x)", "Union(y2, x)")
這樣是字串"Union(Y, x)", "Union(y1, x)", "Union(y2, x)"
用SET就出錯
set n=choose(h,union(y,x),union(y1,x),union(y2,x))
基本語法是沒錯,但是一旦x,y,y1,y2其中又一個是nothing也會出錯
作者: jntseng    時間: 2010-8-8 23:28

回復 2# Hsieh
我要表達的非字串,所以修改為,Set n = Choose(h, Union(Y, x), Union(y1, x), Union(y2, x)),但若X,Y,Y1,Y2 有1各是nothing 一樣會有問題,
這樣的話我要如何修改呢?
我想要的是,當h=1,則n=uniob(Y,X),當h=2,n= Union(y1, x),依此類推,所以想請問有什麼方法可以克服呢?
作者: GBKEE    時間: 2010-8-9 08:30

回復 3# jntseng
請先回頭看1樓的程式碼
Dim y1 As Range, y2 As Range
'
'
Set m = Choose(h, Y, y1, y2)
'
'
之後 整個程序中並沒有設定到 y1, y2 為何處???
原本Set n = Choose(h, "Union(Y, x)", "Union(y1, x)", "Union(y2, x)")
雖然修改成 Set n = Choose(h, Union(Y, x)", "Union(y1, x)", "Union(y2, x))
還是會出錯
所以請你要先指出 y1, y2 要如何設定
作者: jntseng    時間: 2010-8-10 00:01

回復 4# GBKEE
我可以改為下面的寫法嗎? 這樣是不是就指定了Y,y1,y2
Set n = Choose(h,Y= Union(Y, x), y1=Union(y1, x), y2=Union(y2, x))
作者: Hsieh    時間: 2010-8-10 00:07

UNION函數的參數不容許NOTHING
作者: GBKEE    時間: 2010-8-10 07:38

回復  GBKEE
我可以改為下面的寫法嗎? 這樣是不是就指定了Y,y1,y2
Set n = Choose(h,Y= Union(Y, x), y1=Union(y1, x), y2=Union(y2, x))jntseng 發表於 2010-8-10 00:01

你的程式中 Dim y1 As Range, y2 As Range  就是指定變數  y1,y2 為Range物件
但你的程式中始終沒有設定到y1,y2 為Range物件  例: Set y1=Range("a5") 等  故 y1,y2 在程式中是 Nothing
所以Hsieh板主說
UNION函數的參數不容許NOTHING
Hsieh 發表於 2010-8-10 00:07

Hsieh的

作者: jntseng    時間: 2010-8-10 21:33

回復 7# GBKEE
謝謝指導,我知道我的問題了




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)