2015-02-08 113 views
0

以下代碼不會將選擇地址存儲在變量sek中,即使將sek聲明爲範圍時也是如此。它正在取所選單元格的值。我需要將單元格的地址存儲爲範圍而不是字符串。將活動單元格地址保存在變量vba中

Range(zro(fm)).Select 
Set sek = Selection 

我試圖

set sek=Cells(application.address) 

無法得到解決。 我寫像這樣

For fm = 1 To tmp 
Range(zro(fm)).Select 
Dim sek As Range: Set sek = Selection 
Range(zro(fm + 1)).Select 
Dim sel As Range: Set sel = Selection 
    Sheets("extract").Cells((5 * a) + 1, fm).Value = Application.WorksheetFunction.max(Range("sek:sel")) 
    Sheets("extract").Cells((5 * a) + 2, fm).Value = Application.WorksheetFunction.Min(Range("sek:sel")) 
Next 
+0

基本上我需要找到一個範圍內的最大值,我有存儲在數組中的範圍地址。 – 2015-02-08 12:49:12

+0

最大的是什麼?你能展示你的數據樣本並解釋更多你需要的嗎? – 2015-02-08 12:53:41

+1

我正在使用 Application.WorksheetFunction.max(Range)獲取最大值。 範圍可以是($ B $ 4:$ B $ 25),所有這些地址都存儲在一個數組中 – 2015-02-08 12:55:50

回答

0

希望這有助於更換

Range(zro(fm)).Select 
Set sek = Selection 

For fm = 1 To tmp 
    Range(zro(fm)).Select 
    Dim sek As Range: Set sek = Selection 
    Range(zro(fm + 1)).Select 
    Dim sel As Range: Set sel = Selection 
     Sheets("extract").Cells((5 * a) + 1, fm).Value = Application.WorksheetFunction.max(Range(sek,sel)) 
     Sheets("extract").Cells((5 * a) + 2, fm).Value = Application.WorksheetFunction.Min(Range(sek,sel)) 
    Next 
+0

我在定義範圍的方式上犯了一個錯誤。謝謝:) 您不需要添加該地址(0,0) 謝謝大家:) – 2015-02-08 14:07:37

+0

此外,沒有必要選擇此代碼中的範圍 - 只需直接訪問範圍屬性。 – 2015-02-08 14:09:12

+0

@ShashankNaik你可以用你的答案編輯我的代碼嗎? – 2015-02-08 14:18:34

1

你需要的是

Application.WorksheetFunction.Max(Range(sek.Address & ":" & sel.Address)) 

本文將結合範圍。

此外,您不需要激活範圍來分配它。你可以用

Set sek = Range(zro(fm)) 
+0

有沒有辦法將它保存爲範圍?因爲我正在使用的最大函數不允許字符串引用。 – 2015-02-08 13:16:17

+0

您是否想將範圍作爲參數傳遞給函數? – 2015-02-08 13:19:59

+0

是的,在qn中編輯,我需要在所有範圍內獲得最大值和最小值。 – 2015-02-08 13:29:13

相關問題