Excel 从表中上次使用的列复制数据
您好,我有一个表需要用上次使用的列中的数据填充第一个空列。如图所示,Enq 2为空。我需要做的是找到我认为下面的第一个空列,然后从Enq 4中剪切数据,粘贴到2中,然后删除4中的数据Excel 从表中上次使用的列复制数据,excel,vba,Excel,Vba,您好,我有一个表需要用上次使用的列中的数据填充第一个空列。如图所示,Enq 2为空。我需要做的是找到我认为下面的第一个空列,然后从Enq 4中剪切数据,粘贴到2中,然后删除4中的数据 Sub Test() Dim cel As Range Dim MyRange As Range Set MyRange = ActiveSheet.ListObjects("Table1").HeaderRowRange.Offset(1, 0) For Each cel In MyRange.Cells
Sub Test()
Dim cel As Range
Dim MyRange As Range
Set MyRange = ActiveSheet.ListObjects("Table1").HeaderRowRange.Offset(1, 0)
For Each cel In MyRange.Cells
If cel = "" Then
MsgBox cel.Address
End If
Next cel
End Sub
谢谢你可以试试这个:
Sub Test()
Dim iCol As Long, lastUsedColumn As Long
With ActiveSheet.ListObjects("Table1") ' reference your table object
For iCol = 1 To .ListColumns.Count ' loop through its columns
If IsEmpty(.DataBodyRange(1, iCol)) Then ' if current column first row value is empty
With .DataBodyRange(1, .ListColumns.Count) ' reference last column first row cell
If .Value = vbNullString Then 'if empty
lastUsedColumn = .End(xlToLeft).Column ' get excel sheet column index of preceeding first not empty cell in same row
Else ' otehrwise
lastUsedColumn = .Column ' get its excel sheet column index
End If
End With
lastUsedColumn = lastUsedColumn - .DataBodyRange(1, 1).Column + 1 ' translate excel column index to table column index
Exit For
End If
Next
If lastUsedColumn > 0 and lastUsedColumn > icol Then .ListColumns(iCol).Range.Value = .ListColumns(lastUsedColumn).Range.Value
End With
End Sub
嗨,谢谢。是任何不复制标题的方式。我发现在运行时,Enq 2变成Enq 4,列从turns复制到Enq 42