Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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
Excel 循环浏览列表并附加结果VBA_Excel_Vba - Fatal编程技术网

Excel 循环浏览列表并附加结果VBA

Excel 循环浏览列表并附加结果VBA,excel,vba,Excel,Vba,我有一个主工作表,它是一个仪表板样式表,从链接的工作表中提取信息(用于抽查)。工作表的所有结果都是由一个单元格(一个ID)驱动的,我有一个ID列表,我想在单元格中流动,然后复制一行结果并将其附加到其他工作表中。我录制了这个函数,试图解释我在做什么 Sheets("Data Input").Select Range("L3").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = &q

我有一个主工作表,它是一个仪表板样式表,从链接的工作表中提取信息(用于抽查)。工作表的所有结果都是由一个单元格(一个ID)驱动的,我有一个ID列表,我想在单元格中流动,然后复制一行结果并将其附加到其他工作表中。我录制了这个函数,试图解释我在做什么

Sheets("Data Input").Select
Range("L3").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=List!R[1]C[-11]"
Rows("32:32").Select
Selection.Copy
Sheets("results").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
然后我多次这样做,以展示整个过程的外观:

Sheets("Data Input").Select
Range("L3").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=List!R[2]C[-11]"
Rows("32:32").Select
Selection.Copy
Sheets("results").Select
Range("A4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Sheets("Data Input").Select
Range("L3").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=List!R[3]C[-11]"
Rows("32:32").Select
Selection.Copy
Sheets("results").Select
Range("A5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Sheets("Data Input").Select
Range("L3").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=List!R[4]C[-11]"
Rows("32:32").Select
Selection.Copy
Sheets("results").Select
Range("A6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

总的来说有三张纸数据输入结果和函数所在的位置,列表其中包含ID列表和结果其中我只需要从数据输入中添加一行(第32行)

您可以执行以下操作:

Dim wsList作为工作表,wsData作为工作表,wsResult作为工作表
尺寸c作为范围,rwDest作为范围
设置wsList=ThisWorkbook.Worksheets(“列表”)
设置wsData=ThisWorkbook.Worksheets(“数据输入”)
设置wsResult=ThisWorkbook.Worksheets(“结果”)
设置rwDest=wsResult.Rows(3)的第一个目标行
例如,对于wsList.Range(“A2:A100”).Cells中的每个c
如果c.值为“”,则
wsData.Range(“L3”).Value=c.Value
wsData.Calculate
rwDest.Value=wsData.Rows(32).Value'复制行值
设置rwDest=rwDest.Offset(1,0)的下一个目标行
如果结束
下一个c

这基本上让我达到了目的,我在wsResult.Row(2)行上有“Object variable or with block variable not set”,在List.Range行上又有“set wsResult=thishworkbook.Sheets”(“Result”)。然后我在这里为List和data添加了一个“set wsResult=thishworkbook.Sheets”(“Result”)。它工作得很好。我的坏-忘了添加这些行。以上编辑。