2010-10-06 53 views
0

我可以做到这一点=(For i=1 to 100, print i)excel:是否可以将FOR语句作为公式放入单元格中?

有没有办法将FOR语句放入单元格中而不使用VBA?

+0

请问为什么没有VBA限制?我不知道如何在没有VBA的情况下做这种事情。 – bernie 2010-10-06 15:27:10

+0

@adam shana tova,没有VBA,因为我不想太看中 – 2010-10-06 15:37:13

+0

切换到Resolver One? – jtolle 2010-10-06 16:02:14

回答

0

的VBA此并不花哨在所有:-)

Option Explicit 

Sub SimpleForLoop() 
    Dim i As Integer 

    For i = 1 To 100 Step 1 
     With ActiveWorkbook.Sheets(1).Cells(1, 1) 
      .Value = .Value + i 
     End With   
    Next 
End Sub 

简单代码上面提出的值5050在单元格A1。

如果你想将字符串代替,这巴掌代码到您的for循环:

With ActiveWorkbook.Sheets(1).Cells(2, 1) 
     If .Value = "" Then 
      .Value = CStr(i) 
     Else 
      .Value = .Value & "," & CStr(i) 
     End If 
    End With 

,它将打印以下到单元格A2:

1,2,3, 4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28, 29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53, 54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78, 79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100

1

你可以使用一个数组来获得数字1到100,但是你限制你可以用它们做什么。例如,你不能在一个数组公式中连接(你的伪代码建议)。但你可以SUM,AVERAGE或许多其他操作。

{=SUM(ROW(1:100))} 
{=AVERAGE(ROW(1:100))} 
{=MAX(ROW(1:100))} 

大括号表示进入控制+ shift + enter,而不是输入。

相关问题