使用IF然后更改单元格以反映页码

时间:2018-12-27 17:29:35

标签: excel vba excel-vba

[![之前电子表格的图像1] [![我希望结果是] 2] 2

我正在尝试根据列AC的扩展名在N列中设置某些页面的方法。例如,在AC列中具有“ EOC”的任何扩展名都应在N列中显示“ EOC”。要添加到此,我需要在AC列中具有OBC +一个数字的任何spreaname在N列中以OB#显示(数)。

到目前为止,我拥有的代码显然会更改指定的单元格,但不会更改整个列。我以为可以通过简单的借用来解决问题,但是那行不通,然后我考虑做一个循环,但是考虑到行数,我担心处理时间太长。所以我想知道是否有更好的方法来做到这一点。在正确方向上的任何帮助将不胜感激。

 Sub Pages()
  'Set Pages based on Spreadname

 Dim lrow As Long
 Dim sCellVal As String

 lrow = Cells(Rows.Count, "N").End(xlUp).Row

 sCellVal = Range("AC2").Value

 If sCellVal Like "*EOC*" Then
 Range("N2").Value = "EOC"
 End If

 End Sub

1 个答案:

答案 0 :(得分:1)

这将使您的逻辑从第二行开始遍历整个列(假设您有标题行

Option Explicit

Sub Pages()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1") '<-- Update!!
Dim LR As Long, i As Long

LR = ws.Range("AC" & ws.Rows.Count).End(xlUp).Row

For i = 2 To LR
    If ws.Range("AC" & i) Like "*EOC*" Then
        ws.Range("N" & i) = "EOC"
    ElseIf Left(ws.Range("AC" & i), 3) = "OBC" Then
        ws.Range("N" & i) = "OB" & Right(ws.Range("AC" & i), 1)
    End If
Next i

End Sub