Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2819|回复: 6

如何设置循环

[复制链接]
发表于 2020-5-29 23:05 | 显示全部楼层 |阅读模式
1学分
本帖最后由 PolarisBeimin 于 2020-5-30 18:24 编辑

我想要的效果就是在“记忆曲线”中判断今日日期,如果成立就给k赋值。再带入下一个判断k=“实验表格”中的就选中然后粘贴sheet1演示效果:“记忆曲线”【h5】为今日日期然后将任务记录中的相应值赋给k,k=第一天,进入“实验表格”进行判断,如果成立就复制然后粘贴在sheet1的第一个空白单元格内
效果都能完成就是第二次的if判断也就是下方标红的我不知道如何改为一个循环,也就是从第一个单元格到最后一个,而不是只能判断一个。
Sub 测试()
Dim i, j, x As Integer
With Worksheets("记忆曲线")
    arr = .Range(.Cells(1, "P"), .Cells(.Rows.Count, "H").End(xlUp).Offset(1, 0))
    ri = Int(Now())
    rng = Sheet1.Range("A:A").Find("", lookat:=xlWhole)
  For i = 4 To UBound(arr): For j = 1 To UBound(arr, 2)
    If arr(i, j) = ri Then
        k = Cells(i, 3).Value
    End If
    If k = Sheet2.Cells(1, 1) Then
        Sheet2.Cells(1, 1).CurrentRegion.Copy Sheet1.Cells(rng.Row, 1)
    End If
    Next j: Next i
End With
End Sub


if判断 -.zip

199.84 KB, 下载次数: 0

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2020-5-29 23:05 | 显示全部楼层
  1. Sub 测试()
  2. Dim arr As Variant, ri$, i%, j%, k$, y&, yy&
  3. With Worksheets("记忆曲线")
  4.     arr = .Range(.Cells(1, "P"), .Cells(.Rows.Count, "H").End(xlUp).Offset(1, 0))
  5.         ri = Date
  6.             For i = 4 To UBound(arr)
  7.                 For j = 1 To UBound(arr, 2)
  8.                     If arr(i, j) = ri Then
  9.                         k = .Cells(i, 3).Value '点得加上
  10.                             For y = 1 To Sheet2.Cells(Sheet2.Rows.Count, 1).End(xlUp).Row Step 12
  11.                                 If k = Sheet2.Cells(y, 1) Then
  12.                                     yy = Sheet1.Cells(Sheet1.Rows.Count, 1).End(xlUp).Row
  13.                                         If yy = 1 Then
  14.                                         yy = 1
  15.                                     Else
  16.                                 yy = yy + 2
  17.                             End If
  18.                         Sheet2.Cells(y, 1).CurrentRegion.Copy Sheet1.Cells(yy, 1)
  19.                     End If
  20.                 Next
  21.             End If
  22.         Next
  23.     Next
  24. End With
  25. End Sub
复制代码
回复

使用道具 举报

发表于 2020-5-30 08:28 | 显示全部楼层
为了沟通效率,
最好 上个附件 , 直接说明你要做什么
回复

使用道具 举报

 楼主| 发表于 2020-5-30 13:05 | 显示全部楼层
砂海 发表于 2020-5-30 08:28
为了沟通效率,
最好 上个附件 , 直接说明你要做什么

我想要的效果就是在“记忆曲线”中判断今日日期,如果成立就给k赋值。再带入下一个判断k=“实验表格”中的就选中然后粘贴sheet1演示效果:“记忆曲线”【h5】为今日日期然后将任务记录中的相应值赋给k,k=第一天,进入“实验表格”进行判断,如果成立就复制然后粘贴在sheet1的第一个空白单元格内
效果都能完成就是第二次的if判断也就是下方标红的我不知道如何改为一个循环,也就是从第一个单元格到最后一个,而不是只能判断一个。

if判断 -.zip

199.84 KB, 下载次数: 5

回复

使用道具 举报

 楼主| 发表于 2020-5-30 17:57 | 显示全部楼层
本帖最后由 PolarisBeimin 于 2020-5-30 18:02 编辑

你好,这个是有效果,但是您的代码运行之后只能在sheet1出现一次的内容,而在“记忆曲线”中不只有一次日期等于今天。
回复

使用道具 举报

发表于 2020-5-30 18:18 | 显示全部楼层
PolarisBeimin 发表于 2020-5-30 17:57
你好,这个是有效果,但是您的代码运行之后只能在sheet1出现一次的内容,而在“记忆曲线”中不只有一次日 ...

sheet1表你往下翻,有多次的

评分

参与人数 1学分 +3 收起 理由
PolarisBeimin + 3

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2020-5-30 18:23 | 显示全部楼层
huangcaiguang 发表于 2020-5-30 18:18
sheet1表你往下翻,有多次的

好的谢谢,刚刚是我没有设置好,感谢前辈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-20 20:49 , Processed in 0.408179 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表