自动调整非特定单元格列Excel VBA

时间:2016-06-21 19:01:15

标签: excel vba excel-vba

所以我是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但它也不起作用。

1 个答案:

答案 0 :(得分:1)

如果您不确定范围,请考虑在整个工作表上使用AutoFit。

ThisWorkbook.Worksheets("Sheet3").columns.autofit