Board logo

標題: [發問] 關於VBA變數問題 [打印本頁]

作者: chiang0320    時間: 2016-3-17 23:38     標題: 關於VBA變數問題

請問一個問題
浮動的大數據,利用countif函數算出數量
假設算出來數量是35663,再把列刪掉,如下:
------------------------------------------------------------------
Sub 巨集1()

    Rows("2:35663").Select
    Selection.Delete Shift:=xlUp

End Sub

------------------------------------------------------------------
每次需要用手動自己輸入所得的數量
35663是一個變數,請問要怎麼寫成VBA?不需要再手動輸入?
作者: 訪客    時間: 2016-3-18 21:41

回復 1# chiang0320
x = 35663
Rows("2:" & x).Delete
作者: chiang0320    時間: 2016-3-19 00:33

回復 2# 訪客


    Rows("2:x").delete     為何不能寫成這樣?

正確寫法,為何""不用包到x   卻多了&
作者: c_c_lai    時間: 2016-3-19 07:27

回復 4# chiang0320
x 為一個變數型態宣告
你的提問: 為何""不用包到x   卻多了&
           Rows("2:x").delete     
"2:x" 被視為是一個字串型態,執行時則會產生
------------------------
執行階段錯誤 '13'
型態不符合
------------------------
x = 35663
Rows("2:" & x).Delete

"2:" & x 即等於 "2:35663"
所以一切均能正常執行。
作者: chiang0320    時間: 2016-3-19 10:09

回復 5# c_c_lai


    懂了,謝謝!
作者: clio    時間: 2016-3-24 11:13

這個有二種方式處理
Dim x As Long
    Dim Rows_Str As String
   
    'x變數請自行設定
    Rows_Str = "2:" & CStr(x)
    Rows(Rows_Str).Delete shift:=xlUp
   
    '另一個方法是用Range來處理
    With ActiveSheet
        
        .Range(.Rows(2), .Rows(x)).Delete shift:=xlUp
   
    End With

這二個都能達到相同的目的




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