excel - 嵌套的 for 和 if 循环在 VBA 中不起作用
问题描述
有许多类型产品(铜)的价格报告。报告包括产品名称(铜、锌等)在一栏,价格在第二栏,对应的日期在第三栏。
我需要在此报告中仅找到铜,然后我需要获取特定日期范围内每个日期的价格,并将此价格粘贴到另一个也有日期的电子表格中,因此在粘贴价格时,应将其粘贴到该日期的正确行。
我只粘贴了一个价格,但这不是正确的日期。我希望截图能帮助理解任务。
Dim elements As Range, element As Range, dates_pnl As Range, x As Range
Set elements = Workbooks("Metals_2019_11_21.csv").Worksheets("Metals_2019_11_21").Range("A2:A10")
Set wb1 = ThisWorkbook
Set ws1 = wb1.Worksheets("Prices")
Set dates_pnl = ws1.Range("A771:A779")
For Each element In elements
If element.Value = "Copper" Then
For Each x In dates_pnl
If element.Offset(0, 1) = x Then
element.Offset(0, 2).Copy
ws1.Range("B772").PasteSpecial Paste:=xlPasteValues
End If
Next x
End If
Next element
解决方案
你的复制方式不是最有效的,但它确实有效。这是一个很好的起点。
Dim elements As Range, element As Range, dates_pnl As Range, x As Range
Set elements = Workbooks("Metals_2019_11_21.csv").Worksheets("Metals_2019_11_21").Range("A2:A10")
Set wb1 = ThisWorkbook
Set ws1 = wb1.Worksheets("Prices")
Set dates_pnl = ws1.Range("A771:A779")
For Each element In elements
If element.Value = "Copper" Then
For Each x In dates_pnl
If element.Offset(0, 1) = x Then
x.Offset(0, 1).Value = element.Offset(0, 2).Value
End If
Next 'x
End If
Next 'element
推荐阅读
- python - 如何在numpy中组合两个矩阵?
- c# - SQLite/WPF - TextColumn 绑定一个新的标题文本
- node.js - 为什么我无法使用我的公共 IP 访问我的红色节点
- sharepoint - sharepoint webpart xlsx 要列出
- logical-operators - 布尔代数:如何证明这个范式方程?
- python - 双向链表的反向实现是如何工作的?
- python - sqlalchemy-flask 应用程序中的属性错误(键),无法连接到数据库
- php - laravel 项目如何在没有路由和控制器的情况下工作?
- php - 如何通过 php 在 mysql 中使用 bcrypt
- mysql - 如何在 MySQL 中连接两个不相关的表?