0

我一直在 Excel 2010 中进行一些基本的 VBA 编程,但我一直在努力应对这一挑战。基本上,我有一张格式如下的表格(它实际上有 62 列和行=给定月份的天数):

在此处输入图像描述

A 列将被隐藏,但用于一些公式。第 15 行显示该站是 24/7(全部)还是仅周一至周五(MF)开放。呈现的值是任意计数。但是,空白计数代表一个问题,除非... 电台是 MF 并且

我需要获取我的代码来识别打开 MF 的电台,然后填写任何特定的 Sat。或带有“已关闭”一词的 Sun(对于该站)。然后搜索下一个 MF 电台并重复该过程。

最初我让我的代码从一个实际值开始,然后使用几个 activecell.offset 函数来查找空单元格,然后检查条件,但我无法让它工作。然后我尝试从车站名称或时间表行进行检查,但我也无法让多个 if/nested offset 语句工作。

我非常感谢您提供的任何帮助或见解,这将向我展示最佳方法。我真的不需要执行它的代码,我只需要一个伪代码演练,除非你足够好心地写出代码。

谢谢你的帮助!

4

1 回答 1

0

我以前解决过类似的问题。我将其修改为您的电子表格:

Dim d As Long, s As Long
d = 1 'weekdays column
s = 40 'status row

Dim r As Long, c As Long
r = ActiveSheet.Cells(Rows.Count, d).End(xlUp).Row
c = ActiveSheet.Cells(s, Columns.Count).End(xlToLeft).Column

Dim i As Long, cell As Range
i = 0

Dim days() As Long
For Each cell In Range(Cells(1, d), Cells(r, d))
    If cell.Value = "Sat" Or cell.Value = "Sun" Then
        ReDim Preserve days(i)
        days(i) = cell.Row
        i = i + 1
    End If
Next cell

For Each cell In Range(Cells(s, 1), Cells(s, c))
    If cell.Value = "M-F" Then
        For i = LBound(days) To UBound(days)
            Cells(days(i), cell.Column).Value = "closed"
        Next i
    End If
Next cell
于 2013-09-27T04:41:06.287 回答