2015-02-17 128 views
0

我想寫一個Excel宏,這裏簡要介紹它的作用 1)使用輸入參數,位於共享站點上打開Excel文件。 2)基於輸入參數的過濾器。 3)將過濾後的值複製到新的電子表格並對其進行排序。Excel宏包含參數在範圍

我在選擇範圍時發現問題。

BuildID是輸入參數

「列數轉換爲列名

ColNo = BuildID + 2 
colnm = Split(Cells(, ColNo).Address(True, False), "$") 

」下面部將過濾信息選項卡上的第6行和從輸入版本ID

只複製那些顯着的變化或新的
Rows("6:6").Select 
Selection.AutoFilter 
MsgBox (colnm) 
cColNm = "colnm" & 6 
MsgBox (cColNm) 
Range("cColNm").Select 
ActiveSheet.Range("$A$6:$IR$46").AutoFilter Field:="ColNo", Criteria1:="<>" 
Range("A7:B45").Select 
Selection.Copy 

我得到一個類型不匹配錯誤在第一個msgbox。 (該colnm工作正常與debug.print功能將在即時窗口打印,但沒有在任何地方存儲) 類似MSGBOX在我早期的程序

有人可以幫我工作指着什麼是錯的呢?

+0

試試'MsgBox colnm'和'MsgBox cColNm'。括號是不必要的。插入* MsgBox *和*(*之間的自動間隔試圖告訴你, – Jeeped 2015-02-17 20:31:28

+0

感謝Jeeped,我做到了這一點,甚至然後它給了我一個錯誤... 我得到了根本原因 split function in excel宏給出了一組元素 我試圖在msgbox上沒有參考的數組,因此它是失敗的... 我已經糾正了代碼..它看起來像下面。// colnm =斯普利特(細胞(,ColNo)。地址(真,假), 「$」)(0) 「一節將過濾GeneralInfo選項卡上的一行6只複製那些標記變更或新從輸入版本ID 行( 「6:6」),選擇 Selection.AutoFilter =真 MSGBOX colnm cColNm = colnm&6 MSGBOX cColNm – CodeKavi 2015-02-17 20:42:56

+0

我所提供的(0),這意味着陣列的第一個元素 colnm = Split(Cells(,ColNo).Address(True,False),「$」)(0) 我不好意思,我不知道split是一個數組。 非常感謝您的幫助... – CodeKavi 2015-02-17 20:46:30

回答

1

謝謝Jeeped。

我沒有刪除括號MSGBOX即使如此,它給了我一個錯誤... 對這一現象的根本cuase是,我是想用在沒有參考

分割功能來顯示使用MSGBOX數組excel宏給出了一組元素。 我試圖在陣列上MSGBOX沒有參考,因此它是失敗...

我已經糾正了碼..它看起來像below.//

colnm =分段(小區(,ColNo )。地址(真,假),「$」)(0)

「一節將過濾GeneralInfo選項卡上的第6行和輸入生成ID只複製那些顯着的變化或新

行(」 6:6「)。Select Selection.AutoFilter MsgBox colnm cColNm = colnm MSGBOX cColNm

我所提供的(0),這意味着陣列的第一個元素

colnm =分段(小區(,ColNo)。地址(真,假), 「$」)(0)我的不好,我不知道split是一個數組。非常感謝你的幫助。