所以我是Excel / VBA的新手,并建议尝试执行拉伸任务并自动执行一个过程。 我需要抓住工作表1上的每个故障单ID(一次一个)并检查它是否在第二张表中。然后sheet2比较sheet1的相同过程。故障单ID位于工作表的第2列。如果我在另一张表上没有找到票证ID,我需要将票证ID的整行添加到第三张表。
Dim i As Integer, TicketId As Range, CellId As Range
Dim SearchRange1 As Range, SearchRange2 As Range
Dim rowCount1 As Integer, rowCount2 As Integer, x As Integer
x = 1
'Get row counts from both sheets and set search ranges##
Sheets("Sheet1").Select
rowCount1 = Range("A2", Range("A2").End(xlDown)).Count
Set SearchRange1 = Range("B2", Range("B2").End(xlDown))
Sheets("Sheet2").Select
rowCount2 = Range("A2", Range("A2").End(xlDown)).Count
Set SearchRange2 = Range("B2", Range("B2").End(xlDown))
'loop to compare differences in sheet1 to sheet2 and add to third sheet##
For i = 2 To rowCount1
Sheets("Sheet1").Select
Set TicketId = Cells(i, 2)
Set CellId = SearchRange2.Find(What:=TicketId)
If CellId Is Nothing Then
Rows(i).Select
Selection.Copy
Sheets("Sheet3").Select
Cells(x, 1).Select
Cells(x, 1).PasteSpecial
Rows(x).Select
Selection.Columns.AutoFit
'Cells(x, 1).Value = TicketId.Value##
x = x + 1
End If
Next i
'Sheets("Sheet2").Select##
Application.CutCopyMode = False
我的问题是,当我将数据输入第三张表时,我无法使列正确匹配,我无法看到所有数据。我研究并发现了AutoFit命令,但我不知道如何在我的代码中实现它。我见过AutoFit的其他实现,但编码器总是知道他专门使用的范围。我不知道我要把数据放在哪一行。我已经包含了我尝试过的众多实现中的一个:选择行,并自动调整我的选择。建议? 作为旁注,我的粘贴方法也是唯一适用于我的方法,我尝试使用pastespecial:= xlPasteValues和:= xlPasteFormats但它也不起作用。
答案 0 :(得分:1)
如果您不确定范围,请考虑在整个工作表上使用AutoFit。
ThisWorkbook.Worksheets("Sheet3").columns.autofit