【问题标题】:(Excel) Check if values are the same and if they are, adjusting the adjacent cell(Excel)检查值是否相同,如果相同,则调整相邻单元格
【发布时间】:2017-05-18 01:06:59
【问题描述】:

我试图做的是在一列中列出日期,并将今天的日期放在特定的单元格中 (=TODAY)。如果 B 列中的日期与我指定的单元格 (G12) 中的日期匹配,我希望将 B 列中该日期单元格的直接右侧的单元格调整为与另一个单元格中的值相同的值 (F13) .

因此,如果今天的日期是 5 月 17 日,我的函数或解决方案将检查 B 列的该日期,找到具有相同日期的单元格,然后将该日期右侧的单元格的值调整为任意值与单元格 (F13) 相同。因此,如果单元格 (F13) 的值为 56,我的电子表格将检查今天的日期,在 B 列中找到该单元格并将其右侧的单元格调整为与 F13 (56) 相同。

我希望这是有道理的。如果这是完成此任务所需要的,我在 VBA 方面有一些经验。我想让它尽可能自动化。

【问题讨论】:

    标签: excel


    【解决方案1】:

    使用自动过滤器在 B 列上过滤今天的日期,如果有可见单元格,请将 C 列设置为 F13 中的值。

    With worksheets("sheet1")
        If .AutoFilterMode Then .AutoFilterMode = False
        With .Cells(1, "A").CurrentRegion
            .AutoFilter Field:=2, Criteria1:=date
            With .Resize(.Rows.Count - 1, .Columns.Count).Offset(1, 0)
                If CBool(Application.Subtotal(103, .Cells)) Then
                    .specialcells(xlcelltypevisible).offset(0,1) = .parent.cells(13, "F").value2
                End If
            End With
        End With
        If .AutoFilterMode Then .AutoFilterMode = False
    End With
    

    【讨论】:

    • 所以,我使用以下代码来完成我所需要的。现在唯一的麻烦是它调整了大约 5 个单元格的值。因此,它将 F13 中的正确值放在它所属的位置,但也会用相同的值填充接下来的 4 个单元格。我不确定为什么或如何纠正它。 @吉普德
    • 反弹。答案很直接。您需要调整大小并可能偏移将从 F13 接收值的目标单元格。如果您甚至无法尝试这样做,那么您就不会理解已经提供的代码,并且解决您的新问题是毫无意义的,因为您不会尝试理解解决方案。
    • 让我试着通过这个然后检查我的理解。 1. 你决定 sheet1。 2. 如果 autofiltermode 开启,则将其关闭。 3. 将 A1 单元格作为当前区域,自动筛选字段 #2,我假设它是 B 列? 4. 这对我来说有点麻烦。当我提到我有一些经验时,请记住。我可能无法理解所有代码......如果有人能引导我了解正在发生的其余部分,我将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 2021-12-06
    • 2017-07-20
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多