【发布时间】:2019-10-02 12:24:40
【问题描述】:
我有一个包含四个工作表的工作簿:概述、苹果、香蕉和梨。 在工作表概述中,我有一个 3x3 表:
In Out Extra
apple
banana
pear
概览中的单元格 H5 包含 2019 年的日期,可通过下拉菜单选择
在每个苹果/香蕉/梨片中,我都有一个 365x3 的桌子:
In Out Extra
1-1-2019
2-1-2019
3-1-2019
.
.
.
31-12-2019
我想运行一个宏,以便将概览表中的 In、Out 和 Extra 值填充到正确的工作表中,并在该工作表中的正确日期之后。
目标是人们填写概览表(In、Out 和 Extra 值以及日期),他们运行宏,数据自动存储在右侧工作表的右侧单元格中。
这是一个相对简单的例子,我需要这个宏的实际工作簿有超过 70 个“水果”。
我知道下面的代码不起作用,但我希望能展示我的思维方式
Sub export()
Dim ws As Worksheet 'worksheet
Dim currentdate As Date 'datum
Dim fruit As String 'Fruit
Worksheets("Overview").Activate 'activate worksheet Overview
currentdate = ActiveSheet.Cells(H5) 'select date value
fruit = Overview.Range(“C6, C8”) 'select range of the fruits
For Each ws In Worksheets 'loop over every worksheet except the Overview sheet
If ws.Name = fruit Then 'crossreference name worksheet with fruit in Overview sheet
ws.Activate 'activating the selected worksheet
If ws.Range("A1:A365") = currentdate Then 'looking for the correct date in the selcted worksheet
fruit = ws.Name
Next ws
End Sub
【问题讨论】:
-
嗨。开始你可以将“If ws.Name = fruit Then”替换为“If ws.Name “Overview” Then “。这将跳过工作表概述并获取所有其他内容
-
您真的需要 VBA 解决方案吗?可以使用普通的 Excel 公式完成。