比较两个工作簿工作表excel vba

Posted

技术标签:

【中文标题】比较两个工作簿工作表excel vba【英文标题】:Compare two workbook sheets excel vba 【发布时间】:2016-04-13 12:45:12 【问题描述】:

我正在处理一个新的 excel jfor 1 周,我想比较打开的 excel 文件当前打开的文件,

我尽一切可能,但每当我尝试读取该行时,它只读取打开的值,我无法访问读取我的宏被编码的当前工作簿

Sub test1()
Dim iComp
Dim sheet As String
Dim wbTarget As Worksheet
Dim wbThis As Worksheet
Dim bsmWS As Worksheet
Dim c As Integer
Dim x As Integer
Dim strValue As String
Static value As Integer

Dim myPath As String
Dim folderPath As String
k = 3


Filename = Application.GetOpenFilename("Excel files (*.xls*),*.xl*", Title:="Open data") ' Choosing the Trigger Discription
'Set wbTarget = ActiveWorkbook.ActiveSheet
Set theRange = Range("A2:A4")
c = theRange.Rows.Count
strValue = vbNullString
For x = 1 To c
strValue = strValue & theRange.Cells(x, 1).value
Next x


'Set tabWS = Sheets("Tabelle1")



folderPath = Application.ActiveWorkbook.Path
myPath = Application.ActiveWorkbook.FullName
Set bsmWS = Sheets("Tabelle1")

Set wbkA = Workbooks.Open(Filename:="myPath")
Set varSheetA = wbkA.Worksheets("Balance sheet").Range(strRangeToCheck)

1000行代码,我只放了sn-p。

我在我编程的工作簿中有我的工作表。我想打开另一个工作表,取值并将其与我当前的工作表进行比较。如果字符串匹配(ex range (A1:A2))则 msgbox 是

【问题讨论】:

【参考方案1】:

您是否尝试过使用 ThisWorkbook.Sheets("sheet name").Range("A2:A4") 或 ThisWorkbook.ActiveSheet.Range("A2:A4")。这将确保引用的是代码所在的工作簿。

有关 Application.ThisWorkbook 的更多信息 https://msdn.microsoft.com/en-us/library/office/ff193227.aspx.

【讨论】:

它只检查一次,因为我必须在一个循环中检查,我的问题是我如何切换或保存“文件夹路径”excel表并在单个中查找 我会声明两个对象。一个用于此工作簿,另一个用于您要比较的工作簿: Set wbkA = Workbooks.Open(Filename:="myPath") Set wbkB = ThisWorkbook 然后比较只需使用以下内容: if wbkA.Sheets("SheetName") .Cell(1,1) = wbkB.Sheets("SheetName").cells(1,1) 然后 msgbox("Yes") 设置 wbkA = Workbooks.Open(Filename:="myPath") ... 我收到错误。 尝试 - 将 wbkA = Workbooks.Open(Filename) 设置为我假设位置 myPath 不存在。您还应该将 Filename 声明为字符串 对不起。刚刚意识到你已经声明了 myPath。然后您应该删除引号,因为这将使用文字字符串。更改为 - 设置 wbkA = Workbooks.Open(Filename:=myPath)

以上是关于比较两个工作簿工作表excel vba的主要内容,如果未能解决你的问题,请参考以下文章

Excel 2010 vba 复制选择工作表,保存并关闭两个工作簿

如何用VBA把一个工作簿中的工作表内容复制到另一个汇总工作簿里面的指定的工作表里面去?

Excel VBA 创建工作簿并填充工作表

Excel VBA - 组合宏以重命名工作表和宏以在一个宏中合并工作表

excel如何用vba批量提取指定工作表?

Excel VBA在生成副本的工作表中插入本工作簿中的VBA模块代码