java中拷贝表,如何根据单元格值将数据从一个工作表复制到另一个工作表

该段VBA代码用于Excel工作簿中,它在"数据"工作表上查找特定部门值,然后将匹配行的前三列复制到"查看"工作表。如果"查看"工作表已有内容,则清除原有数据。代码还提供了对输出行的跟踪和更新,适用于小规模数据处理。用户可以根据实际工作表名称和数据位置进行调整。
摘要由CSDN通过智能技术生成

是的,可以做到 . 将此代码添加到工作簿中的模块 . 您可以直接从调试器运行它,或转到宏并为其分配一个热键,或者您可以在工作表上创建一个按钮并将此代码放在按钮单击事件中 . 可能有更有效的方法来做到这一点,但除非你有大量数据,否则无关紧要 . 我已经明确了所以你可以看到最新情况 . 我使用了工作表名称“数据”和“查看”,您必须更改代码中的名称以匹配您的工作簿 .

编辑:我还假设您的屏幕截图中左上角的单元格是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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值