Excel 基于另一个单元格更改单元格的值
我想做的是,如果列O包含“weekend”,那么将列M cells的值更改为“3”Excel 基于另一个单元格更改单元格的值,excel,vba,Excel,Vba,我想做的是,如果列O包含“weekend”,那么将列M cells的值更改为“3” 代码的问题是,您得到的是列A的最后一行,这将阻止执行For。要修复代码,可以通过多种方式进行 使用范围 一种是使用Range属性,这样就可以显式地编写列名,如下所示: Sub weekly_weekend() lastrow = Sheet1.Range("O" & Sheet1.Rows.Count).End(xlUp).Row Application.ScreenUpdating =
代码的问题是,您得到的是
列A
的最后一行,这将阻止执行For
。要修复代码,可以通过多种方式进行
使用范围
- 一种是使用
属性,这样就可以显式地编写列名,如下所示:Range
Sub weekly_weekend() lastrow = Sheet1.Range("O" & Sheet1.Rows.Count).End(xlUp).Row Application.ScreenUpdating = False For x = 2 To lastrow If InStr(1, Sheet1.Range("O" & x).Value, UCase("weekend"), 1) > 0 Then Sheet1.Range("M" & x).Value = "3" Next x Application.ScreenUpdating = True End Sub
Sub weekly_weekend() lastrow = Sheet1.Cells(Sheet1.Rows.Count, 15).End(xlUp).Row Application.ScreenUpdating = False For x = 2 To lastrow If InStr(1, Sheet1.Range("O" & x).Value, UCase("weekend"), 1) > 0 Then Sheet1.Range("M" & x).Value = "3" Next x Application.ScreenUpdating = True End Sub
- 或者,您可以简单地选择所需列的正确编号(在本例中,
是列O
),如下所示:15
Sub weekly_weekend() lastrow = Sheet1.Range("O" & Sheet1.Rows.Count).End(xlUp).Row Application.ScreenUpdating = False For x = 2 To lastrow If InStr(1, Sheet1.Range("O" & x).Value, UCase("weekend"), 1) > 0 Then Sheet1.Range("M" & x).Value = "3" Next x Application.ScreenUpdating = True End Sub
Sub weekly_weekend() lastrow = Sheet1.Cells(Sheet1.Rows.Count, 15).End(xlUp).Row Application.ScreenUpdating = False For x = 2 To lastrow If InStr(1, Sheet1.Range("O" & x).Value, UCase("weekend"), 1) > 0 Then Sheet1.Range("M" & x).Value = "3" Next x Application.ScreenUpdating = True End Sub
希望这能有所帮助。那么什么不起作用呢?有错误吗?如果是,什么错误,在哪一行?我看到的这一行唯一的错误是,
行前面缺少了一个可选的工作表
限定符。Count
。你能详细说明一下吗?