我有两张报告和统计。我需要将“报告”中的具有统计信息的单元格与“报告中的统计信息”相匹配。
我不知道我在想什么:(
我尝试用For
,If
,IF Not
循环
Sub Test1()
Dim x As Integer
Application.ScreenUpdating = False
Rows = Range("A1", Range("A1").End(xlDown)).Rows.Count
Range("A2").Select
For x = 1 To Rows
If ActiveCell.Value = Stat.Range("A").Value Then ActiveCell.Offset(0, 11).Value = "Old"
If Not ActiveCell.Value = Stat.Range("A").Value Then ActiveCell.Offset(0, 11).Value = "New"
' Selects cell down 1 row from active cell.
ActiveCell.Offset(1, 0).Select
Next
Sheets("Stat").Select
Rows2 = Range("A1", Range("A1").End(xlDown)).Rows.Count
Range("A2").Select
For x = 1 To Rows2
If Not ActiveCell.Value = Report.Range("A").Value Then ActiveCell.Offset(0, 11).Value = "Cleared"
' Selects cell down 1 row from active cell.
ActiveCell.Offset(1, 0).Select
Next
Application.ScreenUpdating = True
End Sub
我需要匹配A列中的所有单元格,并尝试与统计表中A列中的任何单元格匹配。
如果匹配,则将11个单元格的报告表向右偏移,并将值“ Old”添加到该单元格。 如果不匹配,则在“报告”表的右侧将Off 11单元格关闭,并添加值“ New”。
最后一件事,我需要匹配状态表中A列中的所有单元格,并尝试匹配报表中A列中的任何单元格。
如果匹配则没有 如果不匹配,则在右侧偏移Stat偏移量11,并添加值“已清除”
我仍在寻找解决方案,但无法解决:/
答案 0 :(得分:0)
这可以帮助您:
Option Explicit
Sub Loop_Loop()
Dim LastrowReport As Long, LastrowStat As Long, i As Long, y As Long
Dim ValueReport As String, ValueStat As String
'Find Report sheet last row (Column A)
LastrowReport = Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row
'Find Stat sheet last row (Column A)
LastrowStat = Sheet2.Cells(Sheet2.Rows.Count, "A").End(xlUp).Row
'Loop value in sheet Report, column A (starting from second row)
For i = 2 To LastrowReport
'Value in sheet Report, Column A i row
ValueReport = Sheet1.Range("A" & i).Value
'Loop value in sheet Stat, column A (starting from second row)
For y = 2 To LastrowStat
'Value in sheet Stat, Column A y row
ValueStat = Sheet2.Range("A" & y).Value
'Check if ValueReport & ValueStat is equal
If ValueReport = ValueStat Then
MsgBox "Same Values!"
End If
Next y
Next i
End Sub
答案 1 :(得分:0)
错误4001
我遵循您的建议,但是这次我不能在同一单元格中重叠使用“旧”,“新”和“清除”这个词了:(
Option Explicit
Sub Loop_Loop()
Dim LastrowReport As Long, LastrowStat As Long, i As Long, y As Long
Dim ValueReport As String, ValueStat As String
LastrowReport = Sheet10.Cells(Sheet10.Rows.Count, "A").End(xlUp).Row
LastrowStat = Sheet12.Cells(Sheet12.Rows.Count, "A").End(xlUp).Row
For i = 2 To LastrowReport
ValueReport = Sheet10.Range("A" & i).Value
For y = 2 To LastrowStat
ValueStat = Sheet12.Range("A" & y).Value
If ValueReport = ValueStat Then
Activecell.offset(0, 11).Value = "Old"
If Not ValueReport = ValueStat Then
Activecell.offset(0, 11).Value = "New"
If Not ValueStat = ValueReport Then
Activecell.offset(0, 11).Value = "Clear"
End If
Next y
Next i
End Sub