2017-07-26 63 views
0

我想在每个工作表的“R”列中找到最大值。如果MaxValue大于6,那么我会在“C”列中将范围设置为0到MaxValue,增量为0.1。如果MaxValue小于6,我想以0.1为增量将“C”列中的范围设置为0到6。查找最大值并将范围设置为等于值

Dim rng As Range 
    Set rng = ws1.Range("R2-R6000") 
    MaxValue = Application.WorksheetFunction.Max(rng) 
    If MaxValue > 6 Then 
    Lx = MaxValue 
    Else 
    Lx = 6 
    End If 

我试图设置代码,但我对VBA很新,所以我不确定如何去执行他的任务。提前致谢!

+0

能否请你澄清这意味着什么:在0.1'增量'设置在“C”柱的范围为0到MaxValue的?你想在代码中定义一个范围对象?或者你是否想以.1为增量填充单元,直到最大数量?或者是什么? –

+0

我想以0.1的增量填充单元格到最大数量。 – Kenzie

回答

0

最好是明确地限定您的工作表,但这会得到一个好的开始。看评论

Dim rng As Range 
Set rng = ws1.Range("R2:R6000") 

Dim MaxValue as Double 
MaxValue = Application.WorksheetFunction.Max(rng,6) 'this will force 6 or > 

Dim dCounter as Double 

Do 

    dCounter = dCounter + .1 

    'adjust this fill range to whatever you need   
    Range("A" & Rows.Count).End(xlup).Offset(1).Value = dCounter 

Loop Until dCounter = MaxValue 
+0

我试过这段代码,它只填充单元格从0.1到6.1,如果“R”列的最大值大于6,我希望它继续超过6.1。 – Kenzie

+0

这适用于我。虽然我确实改变了'循环直到dCounter = MaxValue',所以它*停止*在最大值。确保R中的值大于6并且会产生最大值。否则,将是6。 –

0

此代码的工作对我来说:

Dim ws As Worksheet 
Dim rng As Range 
Dim MaxValue As Long 
Dim NumberOfCells As Long 
Dim i As Double 

For Each ws In Worksheets 
    ws.Activate 
    Set rng = ws.Range("R2:R6000") 

    MaxValue = Application.WorksheetFunction.Max(rng) 

    If Not MaxValue > 6 Then 
     MaxValue = 6 
    End If 

    NumberOfCells = MaxValue/0.1 

    Set rng = Nothing 

    i = 0 
    For Each rng In ws.Range("C1:C" & NumberOfCells + 1) 
     rng.Value = i 
     i = i + 0.1 
    Next rng 

Next 
相关问题