【发布时间】:2019-03-08 05:28:50
【问题描述】:
场景:-有 2 张纸正在比较。 Sheet1 的范围是 B2:B,Sheet2 的范围是 C2:C。
要求:
- Sheet1 B2 = Sheet2 C2
- Sheet1 B3 = Sheet2 C3 等等...
在下面查看我现有的代码:
Sub MessageCode()
Dim FoundBlank1 As Range
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Sheets("Sheet2")
Dim MyRange As Range, MyCell As Range, MyRange2 As Range, MyCell2 As Range
Set MyRange = ws.Range("B2:B" & ws.Range("B" & ws.Rows.Count).End(xlUp).Row)
Set MyRange2 = ws2.Range("C2:C" & ws2.Range("C" & ws2.Rows.Count).End(xlUp).Row)
Set MyCell2 = MyRange2
For Each MyCell In MyRange
If MyCell.Value <> Worksheets("Sheet2").Range("C2").Value Then
MyCell.Copy
Worksheets("Sheet3").Select
Set FoundBlank1 = Range("A1:A1000").Find(What:="", lookat:=xlWhole)
FoundBlank1.Select
Selection.PasteSpecial xlPasteValues
ActiveCell.Offset(0, 1).Value = "Incorrect Value."
End If
Next MyCell
End Sub
【问题讨论】:
-
那么,如果MyCell.Value Worksheets("Sheet2").Range("C2").Value 那么你想把Sheet1中的值复制粘贴到Sheet2中?从我看到的情况来看,我认为您正在 Sheet1 第 1 行中搜索 C2 FROM Sheet2 的值......并留下说明它不正确......这对我来说有点令人困惑,因为你只在寻找 A 行....你能说出你想要什么,这样我就可以尝试找到一种方法来帮助你
-
@MT32 如果 2 个单元格的值不相等。我将它粘贴到表 3 并在其旁边添加注释“不正确的值”
-
那么,sheet 1 和 sheet2 会有相同的行数和列数吧?
-
@MT32,No. Sheet1 和 Sheet2 有一个列,其中值应该相同或相等。例子。 Sheet1 A2 列应等于 Sheet2 B2
-
好的。那么 Sheet3 已经创建好了,那我就不用在代码中创建 sheet3 了吧?
标签: vba excel comparison