-2
我有一个主数据集在一个表像这样如何根据单元格值
在另一片我想基于这个主数据集提取数据从一个表中的数据复制到另一个在一个单元格值将有部门作为标准。
因此,例如,如果在表2我型我我部标准为销售,所有与系行作为销售应在表获取填充2.
可以这样用Excel来完成函数/宏/ VBA? 在此先感谢。 请原谅我,如果您发现此查询荒谬。
我有一个主数据集在一个表像这样如何根据单元格值
在另一片我想基于这个主数据集提取数据从一个表中的数据复制到另一个在一个单元格值将有部门作为标准。
因此,例如,如果在表2我型我我部标准为销售,所有与系行作为销售应在表获取填充2.
可以这样用Excel来完成函数/宏/ VBA? 在此先感谢。 请原谅我,如果您发现此查询荒谬。
是的,它可以做到。将此代码添加到工作簿中的模块。您可以直接从调试器运行它,或者转到宏并为其分配一个热键,或者您可以在工作表上创建一个按钮,并将此代码放入按钮单击事件中。有可能是更有效的方法来做到这一点,但除非你有很多数据,否则它应该不重要。我已经很清楚,所以你可以看到发生了什么。我已经使用表格名称“数据”和“视图”,您将不得不更改代码中的名称以匹配您的工作簿。
编辑:我还假设你的屏幕截图左上方的单元格是A1,如果不是,你将不得不调整代码。
Sub GetDepartments()
Dim LastRow As Long
Dim MyRange As Range
Dim SourceRow As Long
Dim DeptValue As String
Dim OutputRow As Long
Dim ColCounter As Long
'get size of current view sheet and clear
LastRow = ThisWorkbook.Worksheets("View").Cells(ThisWorkbook.Worksheets("View").Rows.Count, "A").End(xlUp).Row
If LastRow > 7 Then
Set MyRange = ThisWorkbook.Worksheets("View").Range("A7:C" & LastRow)
MyRange.ClearContents
End If
'get size of data sheet
LastRow = ThisWorkbook.Worksheets("Data").Cells(ThisWorkbook.Worksheets("Data").Rows.Count, "A").End(xlUp).Row
'get value to match
DeptValue = ThisWorkbook.Worksheets("View").Cells(3, 2).Value
'track outputrow
OutputRow = 7
'loop through all rows in data
For SourceRow = 2 To LastRow
'if match found
If ThisWorkbook.Worksheets("Data").Cells(SourceRow, 2).Value = DeptValue Then
'copy 3 cols
For ColCounter = 1 To 3
ThisWorkbook.Worksheets("View").Cells(OutputRow, ColCounter).Value = _
ThisWorkbook.Worksheets("Data").Cells(SourceRow, ColCounter).Value
Next ColCounter
'increment outputrow
OutputRow = OutputRow + 1
End If
Next SourceRow
End Sub
是的,它可以做到。告诉我们你到目前为止尝试过什么。 – ManishChristian