excel - 将数据移动到特定的列和行
问题描述
我的 Excel 表中有两列数据:
Month: 4, 4, 4, 4, 4, 5, 6, 6, 6, etc.
Day: 2, 2, 2, 3, 4, 6, 1, 2, 3, etc.
我想做的是在其他列中设置月份。然后将该月与每一行中的月份日期匹配。我想在 VBA 中为此编写一个子例程,以便使用任何数据集(月和日)我都可以进行迭代。所以我的范围将类似于 A1:A.... 所以从上面的示例来看,它看起来像这样:
January February March April May June July August ....
2 6 1
2 2
2 3
3
4
我玩过一些 If 语句,但我得到了太多的变量,并且认为我让它变得更复杂,而不是我需要的。
编辑:
j = 10
k = 2
m = 11
v = 2
u = 13
LastRow_0 = .Cells(.Rows.Count, "J").End(xlUp).Row
For i = 2 To LastRow_0
If Cells(i, j) = 4 Then
Cells(v, u) = Cells(k, m)
Else: Cells(v, u) = ""
k = k + 1
v = v + 1
End If
Next i
这就是我所拥有的。它不喜欢“.Rows.Count”语法。月为 j,天为 m。u 是列 # u (13) 中的四月。然后我会复制并粘贴此代码十二次以获得所有月份。v 和 k 变化 1 以遍历所有行,直到 i 用完。基本上直到Null。
编辑2:
'January
With ThisWorkbook.Sheets("Form Date")
LR1 = .Cells(.Rows.Count, "J").End(xlUp).Row
For i = 2 To LR1
If Cells(i, 10) = 1 Then
Cells(i, 13) = Cells(i, 11)
Else: Cells(i, 13) = ""
End If
Next i
End With
'--------------------------------------------------------
'Febuary
With ThisWorkbook.Sheets("Form Date")
LR2 = .Cells(.Rows.Count, "J").End(xlUp).Row
For i = 2 To LR2
If Cells(i, 10) = 2 Then
Cells(i, 14) = Cells(i, 11)
Else: Cells(i, 14) = ""
End If
Next i
End With
'---------------------------------------------------------
'March
With ThisWorkbook.Sheets("Form Date")
LR3 = .Cells(.Rows.Count, "J").End(xlUp).Row
For i = 2 To LR3
If Cells(i, 10) = 3 Then
Cells(i, 15) = Cells(i, 11)
Else: Cells(i, 15) = ""
End If
Next i
End With
我给了它更多的思考并更改了一些东西以排除一些变量。最终不需要它们。我想要一个更小的代码,所以运行时间更短,我不需要其中的 12 个。
解决方案
推荐阅读
- python - Python BeautifulSoup 缺少我认为明显存在的标签
- sql-server - 在 SQL Server 中按 order by 求和分区
- installshield - 使用 setup.exe 在后台静默卸载
- vue.js - V-model 给出: v-on 处理程序中的错误:“TypeError:'in' 的右侧应该是一个对象,得到了 null”与计算函数
- spring-boot - 如何在 Tomcat 中的多个 Spring Boot 应用程序之间传递 Camel VM 消息
- python - 熊猫中有一个函数可以帮助我计算每个行列表中的每个字符串吗?
- python - 根据来自另一个列表的参数提取和比较列表的值
- apache-kafka - Kafka Streams 应用程序是否为用于填充全局 KTable 的主题提交offets?
- python - 如何解决 2 个库(NetCDF4 和 geopandas)之间的冲突
- javascript - 如何从单独的文件中使用 useState 渲染 React 对象?