Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何比较不同excel文件中的两个列表并突出显示更改?_Excel_Vba - Fatal编程技术网

如何比较不同excel文件中的两个列表并突出显示更改?

如何比较不同excel文件中的两个列表并突出显示更改?,excel,vba,Excel,Vba,让18jan.xlsx包含以下数据: ABC 10 XYZ 20 PQR 30 STU 40 DEF 50 HIJ 60 KLM 70 19jan.xlsx包含: XYZ 20 ABC 15 STU 40 DEF 50 HIJ 65 PQR 30 KLM 70 我需要比较它们并突出显示更改,例如这里ABC前面的15应该突出显示。而且我还需要每天更改日期来执行此操作。假设您的数据位于列A:B第一行开始,以下代码应该可以执行此操作: Sub DailyDataHighlight() Dim I

让18jan.xlsx包含以下数据:

ABC 10
XYZ 20
PQR 30
STU 40
DEF 50
HIJ 60
KLM 70
19jan.xlsx包含:

XYZ 20
ABC 15
STU 40
DEF 50
HIJ 65
PQR 30
KLM 70

我需要比较它们并突出显示更改,例如这里ABC前面的15应该突出显示。而且我还需要每天更改日期来执行此操作。

假设您的数据位于列
A:B
第一行开始,以下代码应该可以执行此操作:

Sub DailyDataHighlight()

Dim InputFolder As String
Dim OldExcel As String
Dim NewExcel As String

Dim i As Long
Dim OldString As String
Dim OldValue As String
Dim NewValue As String
Dim SearchResult As Range

InputFolder = "D:\DOCUMENTS\"
OldExcel = "18jan.xlsx"
NewExcel = "19jan.xlsx"

Application.ScreenUpdating = False

Application.Workbooks.Open (InputFolder & OldExcel)
Application.Workbooks.Open (InputFolder & NewExcel)

For i = 1 To Workbooks(OldExcel).ActiveSheet.Range("A1").CurrentRegion.Rows.Count

    OldString = Workbooks(OldExcel).ActiveSheet.Cells(i, 1).Text
    OldValue = Workbooks(OldExcel).ActiveSheet.Cells(i, 2).Text
    Set SearchResult = Workbooks(NewExcel).ActiveSheet.Range("A1").CurrentRegion
    Set SearchResult = SearchResult.Find(OldString, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
    If Not SearchResult Is Nothing Then
        NewValue = SearchResult.Offset(0, 1).Text
        If NewValue <> OldValue Then SearchResult.Offset(0, 1).Interior.Color = RGB(0, 255, 0)
    End If

Next i

Workbooks(NewExcel).Save
Application.ScreenUpdating = True

End Sub
Sub DailyDataHighlight()
Dim InputFolder作为字符串
将旧Excel设置为字符串
将NewExcel设置为字符串
我想我会坚持多久
将旧字符串变暗为字符串
将值设置为字符串
将NewValue设置为字符串
将搜索结果设置为范围
InputFolder=“D:\DOCUMENTS\”
OldExcel=“18jan.xlsx”
NewExcel=“19jan.xlsx”
Application.ScreenUpdating=False
Application.Workbooks.Open(InputFolder和OldExcel)
Application.Workbooks.Open(InputFolder和NewExcel)
对于i=1的工作簿(OldExcel).ActiveSheet.Range(“A1”).CurrentRegion.Rows.Count
OldString=工作簿(OldExcel).ActiveSheet.Cells(i,1).Text
OldValue=工作簿(OldExcel).ActiveSheet.Cells(i,2).Text
设置SearchResult=Workbooks(NewExcel).ActiveSheet.Range(“A1”).CurrentRegion
设置SearchResult=SearchResult.Find(OldString,LookIn:=xlValues,LookAt:=xlother,MatchCase:=True)
如果不是搜索结果,那么什么都不是
NewValue=SearchResult.Offset(0,1).Text
如果NewValue OldValue,则SearchResult.Offset(0,1).Interior.Color=RGB(0,255,0)
如果结束
接下来我
工作簿(NewExcel)。保存
Application.ScreenUpdating=True
端接头
假设和细节:

  • 数据范围实际上是无限的
  • 两个文件都放在同一个文件夹中。名称和路径应在代码中定义
  • “突出显示”是使用单元格填充完成的,根据需要更改
    .Interior.Color=RGB(0,255,0)
  • 仅检查第一个也是唯一一个出现的键字符串的更改(基于输入)
  • 示例文件也被共享:


    希望这对学习VBA也有帮助)

    我面临的问题是运行两个循环,一个是比较第一列,然后比较相应的number@AjinkyaBadhan根据上述样品,你能告诉我们你的预期结果吗<代码>=)