Excel宏将数据移动到设定位置

时间:2016-11-04 17:57:43

标签: excel vba excel-vba macros

我使用以下内容在Excel中将一行数据插入到另一个基于选择框的工作表中,所有工作都按原样应用,直到我向工作表添加更多信息,然后它将数据添加到下一个可用的清除行总是在页面的最底部,我需要在页面中间添加一个设置位置。

我希望Start点是一个特定的Cell,而不是A列中第一个可用的Cell是空的,是否可以设置一个特定的起始点来添加数据,如果在de中的Selection框中也可以删除它 - 请选择?

Sub CheckboxClicked()
Dim cel As Range, dest As Range, rw As Range, targ As Range
Set cel = ActiveSheet.Shapes(Application.Caller).TopLeftCell
Set rw = Intersect(cel.EntireRow, Range("B:H")) 'This is the number of columns to be coppied over to the RAMs work sheet
'This is the destination and offset based on cell A1

With Worksheets("RAMS")
    Set dest = .Columns("A").Find(Application.Caller)
    If dest Is Nothing Then
        If cel.Value = True Then
            Set dest = .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)
            dest.Offset(0, 1).Resize(1, rw.Columns.Count).Value = rw.Value
            'dest.Offset(0, rw.Columns.Count + 1).Value = Now 'Adds the date and time that the RAMS were added (Commented out)
            dest.Value = Application.Caller
        End If
    Else
        If cel.Value = False Then dest.EntireRow.Delete
    End If
End With
End Sub

1 个答案:

答案 0 :(得分:1)

设置dest拾取最后一个填充的单元格,然后向下移动1个单元格(偏移量)

Set dest = .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0)

如果需要特定单元格,可以替换偏移线

Set dest = .cells(1,1)

您可以根据要粘贴值的确切位置替换“cells(row,col)”。