2013-09-26 40 views
0

我一直在Excel 2010中进行一些基本的VBA编程,但我一直在为这个挑战奋斗一段时间。基本上,我有被格式化这样的片材(它实际上具有62列和行=在给定的月份的天数):Excel搜索空单元格,检查条件,写文本

enter image description here

列A将被隐藏,但是在几个公式被用于。 第15行显示该电台是全天候开放(全部)还是仅周一至周五(M-F)。 提供的值是任意计数。然而,一个空白计数代表一个问题,除非...该站是M-F,并且

我需要得到我的代码来确定一个打开M-F的站,然后填写任何特定的星期六。或者Sun(对于那个站)用“关闭”这个词。然后搜索下一个M-F站并重复该过程。

最初我让我的代码以实际值开始,然后使用几个activecell.offset函数来查找空单元格,然后检查条件,但是我无法解决它。然后我试图从站名或日程表行中检查,但是我无法获得多个if/nested偏移语句。

我真的很感激任何帮助或见解,你可以提供,会告诉我最好的办法。我并不真的需要这样做的代码,除非你足够写出代码,否则我只需要一个伪代码。

感谢您的帮助!

+0

如果我遵循正确的做法,第15行不会总是第15行,因为显示月份的日期更多。这个单元格是否被命名为?它会永远不是M-F还是全部? –

+0

它不会是第15行,这只是我创建的示例。它始终是第40行,一旦计算完成,它就会被隐藏起来。唯一可能的其他事情是关闭的,然后需要关闭所有单元格。 – pharrm

+0

你有一张桌子,或所有m-f站的列表吗?或者至少你能给我们什么决定一个电视台应该是我的m-f?还是你假设在星期六和星期日是空白的,那么这个电台是m-f?这可能会导致问题,如果一个24/7的电台下周六和周日,即使它不应该不是吗? – user2140261

回答

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 
+0

完美的作品!谢谢! – pharrm

相关问题