2015-02-08 49 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

相关问题