excel - 如何将数据粘贴到第一个空行的列中?

标签 excel vba

我正在寻找一种将数据粘贴到特定列的第一个空行中的解决方案。
以下函数正确复制和粘贴数据,但不能正确复制和粘贴特定列的第一个空行。

Sub Test()

Application.ScreenUpdating = False
Dim i As Integer
Dim Lastrow As Long

Lastrow = Cells(Rows.Count, "A").End(xlUp).Row

For i = 1 To Lastrow

    If Cells(i, 1).Value = "cav. 1" Then

        Cells(i, 11).Offset(0, 10).Value = Cells(i, 11).Value
        
    End If

    If Cells(i, 1).Value = "cav. 2" Then
    Cells(i, 11).Offset(0, 11).Value = Cells(i, 11).Value
    End If
    
Next
Application.ScreenUpdating = True
End Sub

最佳答案

复制到其他列,不在同一行

Option Explicit

Sub Test()
    
    ' Source
    Const sfRow As Long = 2 ' First Row
    Const slCol As String = "A" ' lookup
    Const srCol As String = "K" ' result
    Const sCrit1 As String = "cav. 1"
    Const sCrit2 As String = "cav. 2"
    
    ' Destination
    Const dfRow As Long = 2 ' First Row
    Const dCol1 As String = "U"
    Const dCol2 As String = "V"

    Application.ScreenUpdating = False

    Dim ws As Worksheet: Set ws = ActiveSheet ' improve
    
    Dim slRow As Long: slRow = ws.Cells(ws.Rows.Count, slCol).End(xlUp).Row
    Dim dr1 As Long: dr1 = dfRow
    Dim dr2 As Long: dr2 = dfRow
    
    Dim sr As Long
    
    For sr = sfRow To slRow
        Select Case LCase(CStr(ws.Cells(sr, slCol).Value))
        Case sCrit1
            ws.Cells(dr1, dCol1).Value = ws.Cells(sr, srCol).Value
            dr1 = dr1 + 1
        Case sCrit2
            ws.Cells(dr2, dCol2).Value = ws.Cells(sr, srCol).Value
            dr2 = dr2 + 1
        End Select
    Next sr

    Application.ScreenUpdating = True

End Sub

关于excel - 如何将数据粘贴到第一个空行的列中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70702927/

相关文章:

vba - 显示上次用户在 vba 中打开共享工作簿的时间

excel - 从列表框用户窗体中删除一行

excel - 刷新 WorkbookConnection 或其 ODBCConnection 有什么区别吗?

VBA EXCEL代码: Current Stock Price

VBA将一组单元格作为范围传递给函数

vba - Excel VBA - 调整颜色线和 X 轴间隔

Excel公式为依赖于其他2列(名字和姓氏)的列分配唯一值?

c# - 来自 COM 插件的 SheetBeforeDoubleClick

sql - 调用函数的 MS Access 更新查询不返回任何内容/更新字段

vba - Excel 单元格值作为字符串不会存储为字符串