VBA代码来比较2个工作表的单元格值?

问题描述 投票:0回答:1

我有 2 张 -

"Data Pulls"
"Hardcoded Values"
"Data Pulls"
工作表包含一堆彭博公式,用于从彭博终端提取实时数据。
"Hardcoded Values"
工作表包含与值(而不是公式)相同的数据。我目前正在尝试编写一个名为
"Highlight Differences"
的按钮,单击该按钮时,本质上需要循环遍历
"Data Pulls"
选项卡中的使用范围,并将其与
"Hardcoded Values"
选项卡中的数据进行比较。因为需要比较
"Data Pulls"
中的单元格 A8 是否与“
Hardcoded Values"
”中的单元格 A8 具有相同的数据,依此类推,对于范围内的每个单元格。如果两个单元格不同,代码应将相应的单元格突出显示为红色例如,如果
"Data Pulls"
中的单元格 A8 中的 Bloomberg 公式拉出了“男孩”,而
"Data Pulls"
选项卡中的单元格 A8 表示“女孩”,则
"Hardcoded Values"
中的单元格 A8 将突出显示为红色。
我有当前的代码,这给了我

"Data Pulls"

。我认为这是因为

Run-time error '13': Type Mismatch
中的单元格包含公式,而
"Data Pulls"
中的单元格包含值(文本/数字)。我尝试在代码中合并一行,将从公式派生的数据存储为文本,但无济于事。您能帮我确定如何解决这个问题吗?
"Hardcoded Values"


excel vba compare highlight
1个回答
0
投票
突出差异

Sub HighlightDifferences() ' Define source and destination ranges Dim srcRange As Range Dim dstRange As Range Set srcRange = ThisWorkbook.Sheets("Data Pulls").Range("A8:W46") Set dstRange = ThisWorkbook.Sheets("Hardcoded Values").Range("A8:W46") ' Store source data as text Dim srcData As Variant srcData = srcRange.Value2 ' Loop through each cell For i = 1 To srcRange.Rows.Count For j = 1 To srcRange.Columns.Count ' Compare values and highlight differences If UCase(CStr(srcData(i, j))) <> UCase(dstRange.Cells(i, j).Value) Then srcRange.Cells(i, j).Interior.ColorIndex = xlRed End If Next j Next i End Sub

© www.soinside.com 2019 - 2024. All rights reserved.