这里的目标是比较列#34; A"两个工作簿之间(当前工作簿是.xlsm,目标工作簿是.xlsx)。如果找到任何匹配项;列" E"中的值在匹配值的同一行上,在目标工作簿中更改。在这种情况下,必须将工作簿分开。
我决定通过选择当前工作簿中的第一个值(A2),将其值应用于变量,然后扫描列" A"来决定这样做。在目标工作簿中查找匹配项(应始终至少有一个匹配项)。然后更改列#34; E"的值在目标工作簿中,以#DSC; DSC"对于那些匹配的行。然后,将当前工作簿中的所选单元格向下移动一个,并循环此过程,直到到达空白单元格。
以下是目前的代码:
Sub DSC()
Dim RowCount As Long
secondWorkbook = "Master.xlsx"
currentWorkbook = ThisWorkbook.Name
Workbooks.Open ThisWorkbook.Path & "\" & secondWorkbook
' Define number of rows
RowCount = Workbooks("Master.xlsx").Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
' Select First Cell
Windows(currentWorkbook).Activate
Worksheets("Update Wipe").Activate
Range("A2").Select
Serial = ActiveCell.Value
Windows(secondWorkbook).Activate
Worksheets("Sheet1").Activate
' Run Function
For c = 2 To (RowCount - 1)
Windows(secondWorkbook).Activate
If Sheet1.Cells(c, 1).Value = Serial Then
Sheet1.Cells(c, 5) = "DSC"
Windows(currentWorkbook).Activate
Worksheets("Update Wipe").Activate
Selection.Offset(1, 0).Select
Serial = ActiveCell.Value
If Serial = "" Then Exit For
End If
Next c
End Sub
目前没有返回任何错误,但目标工作簿中没有更新任何内容。它将在计算机上打开目标工作簿。反复弹回活动工作簿和工作表以更改所选单元格并更新变量可能是原因。
答案 0 :(得分:0)
这是一个简化的工作示例。
您需要将Range("A1:A20")
更改为您要比较的范围。
您也可以将Sheet("Sheet1")
更改为正确的工作表。
AWorkbook
是.xlsm
工作簿。
MasterWorkbook
是.xlsx
工作簿。
如您所见,没有必要使用select。
您可以使用For
或For Each
循环遍历单元格。
通过嵌套for循环,您可以比较单元格,但是对于较大的数据集,我可能会使用Find
和FindNext
而不是循环遍历单元格。
在这个宏中,我遍历宏工作簿中的每个单元格,并将其与目标工作簿中的每个单元格进行比较。
如果值匹配,我将DSC
放在目标工作簿中(E
列)
最后,关闭工作簿(SaveChanges:=True
)
Sub DSC()
Dim AWorkbook, MasterWorkbook, c, d, ALastRow, MLastRow
Set AWorkbook = ThisWorkbook
Set MasterWorkbook = Workbooks.Open(ThisWorkbook.Path & "\" & "MasterWorkbook.xlsx", ReadOnly:=False)
ALastRow = AWorkbook.Sheets("Sheet1").Cells(Rows.CountLarge, "A").End(xlUp).Row
MLastRow = MasterWorkbook.Sheets("Sheet1").Cells(Rows.CountLarge, "A").End(xlUp).Row
For Each c In AWorkbook.Sheets("Sheet1").Range("A2:A" & ALastRow)
For Each d In MasterWorkbook.Sheets("Sheet1").Range("A2:A" & MLastRow)
If c.Value = d.Value Then MasterWorkbook.Sheets("Sheet1").Cells(d.Row, "E").Value = "DSC"
Next d
Next c
MasterWorkbook.Close (True)
End Sub
答案 1 :(得分:0)
将Worksheets(“Update Wipe”)的列A anto中的所有值加载到字典中。使用字典键打开主工作簿和自动筛选器。将“DSC”放入E列的所有可见细胞中。
function setMarginTop() {
const $header = $(".header__content--container");
const marginTop = $header.css("margin-top");
$header.css("margin-top", marginTop);
}