|
本帖最后由 tangyj 于 2024-5-11 14:51 编辑
将多个表中的“表A”的H列中从第4行开始的"其他无立木林地"值替换为"其它无立木林地"值,L列中从第4行开始的"其它林地"值替换为"其他林地"值,我写了个代码,有时可以,有时不可以,麻烦大佬帮看一下代码,谢谢
Sub ReplaceValues()
Dim ws As Worksheet
Dim lastRowH As Long
Dim lastRowN As Long
Dim i As Long
Application.ScreenUpdating = False ' 关闭屏幕更新以加快宏运行速度
Sheets("表A").Select
Set ws = ActiveSheet ' 获取当前选中的工作表
With ws
lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row ' 获取选中工作表的最后一行行号
' 替换 H 列中的 "其他无立木林地" 为 "其它无立木林地"
For i = 4 To lastRowH ' 从第4行开始(起始行数)
If ws.Cells(i, "H").Value = "其他无立木林地" Then
ws.Cells(i, "H").Value = "其它无立木林地"
End If
Next i
' 获取 L 列的最后一行
lastRowL = ws.Cells(ws.Rows.Count, "L").End(xlUp).Row
' 替换 L 列中的 "其它林地" 为 "其他林地"
For i = 4 To lastRowL ' 从第4行开始(起始行数)
If ws.Cells(i, "L").Value = "其它林地" Then
ws.Cells(i, "L").Value = "其他林地"
End If
Next i
End With
End Sub
如果L列值等于国家级且M列值等于I级,则K列值等于国家级一级公益林地;如果L列值等于国家级且M列值等于II级,则K列值等于国家级二级公益林地;如果L列值等于地方级,则K列值等于省级公益林地,否则K列值保持不变,我写的以下代码也出现上面代码情况,有时运行能出结果,有时运行又没有变化。麻烦大佬帮看下
Sub UpdateKColumnValues()
Dim ws As Worksheet
Dim lastRow As Long
' 遍历每个工作表
For Each ws In ThisWorkbook.Worksheets
' 获取每个工作表的最后一行
lastRow = ws.Cells(ws.Rows.Count, "L").End(xlUp).Row
' 循环遍历每一行
For i = 4 To lastRow
If ws.Cells(i, "L").Value = "国家级" Then
If ws.Cells(i, "M").Value = "I级" Then
ws.Cells(i, "K").Value = "国家级一级公益林地"
ElseIf ws.Cells(i, "M").Value = "II级" Then
ws.Cells(i, "K").Value = "国家级二级公益林地"
End If
ElseIf ws.Cells(i, "L").Value = "地方级" Then
ws.Cells(i, "K").Value = "省级公益林地"
End If
Next i
Next ws
End Sub |
|
|