excel - 如果语句不会将结果复制到单独的页面
问题描述
创建一个 If 语句,根据某列中的月份对我的数据进行排序。代码是这样的
Worksheets("Project Info").Activate
Dim month As Long
Application.ScreenUpdating = False
For month = Cells(Rows.Count, 23).End(xlUp).Row To 1 Step -1
If InStr(1, Cells(month, 23).Value Like "1/*", 1) _
Then Cells(month, 23).EntireRow.Copy
Worksheets("January").Activate
ActiveSheet.Paste
Next month
由于某种原因,它不会将数据复制到指定的页面中。它甚至根本没有真正复制数据。有任何想法吗?
解决方案
正如上面评论中提到的,您需要使用工作表引用,否则您将在工作表之间来回跳转,并且在第一次迭代之后,您将复制并粘贴到同一个工作表。您还必须指定每次粘贴数据的位置并更改目的地,否则您将继续粘贴相同的数据。
Dim ws1 as Worksheet
Dim ws2 as Worksheet
Set ws1 = Worksheets("Project Info")
Set ws2 = Worksheets("January")
Dim month As Long
Dim t as Long
Application.ScreenUpdating = False
t=1
For month = ws1.Cells(Rows.Count, 23).End(xlUp).Row To 1 Step -1
If InStr(1, ws1.Cells(month, 23).Value Like "1/*", 1) Then
ws1.Cells(month, 23).EntireRow.Copy
ws2.Rows(t).PasteSpecial xlPasteAll
t=t+1
End if
Next month
推荐阅读
- c# - Dapper - 继续获取对象的异步操作时任务取消
- xml - 为下拉框创建带有变量的 XML 文件
- javascript - 错误:“clientAccessToken”不能为空
- sql - 在每个子组中找到前 N 个
- multithreading - Actix 系统,多个仲裁器 = 多少个线程
- list - 滚动到屏幕底部时按部分加载列表 - Condename one
- python - 读取 .csv 列并在相应字符串旁边写入结果/值?
- reactjs - 即使我使用 AWS Amplify 成功登录,为什么还会出现 invalid_grant 错误?
- python-3.x - 针对特定用户的禁止字词
- c - 循环级前缀和:弄乱了部分和