Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba列中的多循环_Vba_Excel_For Loop - Fatal编程技术网

Vba列中的多循环

Vba列中的多循环,vba,excel,for-loop,Vba,Excel,For Loop,我不是vba开发人员,但他们让我用vba制作宏,我不知道怎么做。我有一个excel表格,其中有几列 Date Activity ActivityType Hours 顺序:A、B、C、D列。 好啊B列列出了几个选项: Activity1 Activity2 Activity3 对于C列也是一样的 Type1 Type2 Type3 好的,现在,我必须在B列中为每个活动创建一个循环。从Activity1开始,我必须为每个activity循环C列。所以 first loop wil

我不是vba开发人员,但他们让我用vba制作宏,我不知道怎么做。我有一个excel表格,其中有几列

Date    Activity   ActivityType  Hours
顺序:A、B、C、D列。 好啊B列列出了几个选项:

Activity1
Activity2
Activity3
对于C列也是一样的

Type1
Type2
Type3
好的,现在,我必须在B列中为每个活动创建一个循环。从Activity1开始,我必须为每个activity循环C列。所以

first loop will be Activity1 - Type1, Activity1 - Type2, Activity3 - Type3.

Second loop: Activity2 - Type1 etc etc.

例如,在第一个循环中,我需要将Activity1-Type1的行复制到另一个工作表中,对于另一个工作表,我必须执行相同的操作。对于每个活动和活动类型。我不知道这个问题是否清楚,但我不知道这些操作是如何进行的。

似乎您正在尝试创建笛卡尔乘积,即B列中的所有单元格“乘以”C列中的所有单元格。下面是一个简单的VBA sub,它将结果输出到工作簿的“Sheet2”上。快速免责声明,这是在没有我的VBA编辑器的情况下完成的,因此它可能有一个小的语法错误

Sub MyFunction()

    Dim ws3 As Worksheet
    Dim rng1 As Range
    Dim rng2 As Range
    Dim lRow1 As Long
    Dim lRow2 As Long
    Dim i As Long
    Dim j As Long
    Dim k As Long
    Dim output as String

    Set rng1 = Worksheets("Sheet1").Range("B1").CurrentRegion
    Set rng2 = Worksheets("Sheet1").Range("C1").CurrentRegion
    Set ws3 = Worksheets("Sheet2")
    lRow1 = rng1.Rows.Count
    lRow2 = rng2.Rows.Count
    k = 0

    For i = 1 To lRow1
        For j = 1 To lRow2
            k = k + 1
            output = rng1.Cells(i,1).Value & " - " & rng2.Cells(j,1).Value
            ws3.Range("A" & k).Value = output
        Next j
    Next i

End Sub

子模块或未定义的函数
:(我刚刚测试过,在Office 2007中效果很好,嗯。您是否使用VBA编辑器(ALT+F11)?您是否将此代码放置在
模块中
?您是否通过在VBA编辑器中按F5来执行它?