因此,我是Excel/VBA的新手,并且建议您尝试并执行拉伸任务并自动化一个过程。 我需要抓住工作表1上的每个工单ID(一次一个)并检查它是否在第二张工作表中。然后对sheet1比较sheet1的过程相同。工单ID位于工作表的第2列。如果我在其他工作表中找不到票证ID,则需要将票证ID的整行添加到第三张工作表。自动调整非特定单元格列Excel VBA
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,但它也不起作用。
'行(x).Select | Selection.Columns.AutoFit'您选择行然后尝试自动调整列....这是它?编辑:另外,蝙蝠侠会链接你避免使用'select'。 – findwindow
我需要自动调整整个行的列。那只是我尝试过的很多事情之一。从这一点我不知道该走到哪里。我是这个语言的新手,2天前我开始了这个项目,对vba一无所知。我很抱歉,如果代码是草率和效率低下。 – rdan1
哈哈当然蝙蝠侠是出于打击犯罪。这对于2天有用^ _^ – findwindow