基于相邻小区中的标准将数据粘贴到范围中的下一个空白单元格中

时间:2015-02-09 12:40:32

标签: excel vba excel-vba

我是使用VBA的初学者。

我想将值复制并粘贴到特定范围内第一个空白单元格中的另一个工作表。

例如,工作表1是总分类帐:

  • 单元格F14包含文本(租金,现金或应收帐款等)
  • 单元格K14包含借方金额。单元格l14包含信用额度。

    我想使用基于F14中文本的下一个可用单元格将K14或K15中的金额复制并粘贴到特定范围内的表单2中。

如果是“现金”,那么范围= sheet2 D1:D10。如果租金然后粘贴到范围表2 D20:D30等。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为这里有一些代码可以获得范围

中的下一个可用空闲单元格
Sub capturedata()

Dim sheet1, sheet2 As Worksheet
Dim testValue As String
Dim cashRange, rentRange As Range

Set sheet1 = ActiveWorkbook.Sheets("Sheet1") ' general ledger
Set sheet2 = ActiveWorkbook.Sheets("sheet2")

testValue = sheet1.Range("F14") ' the cell with rent, cash, etc in it

'the ranges
Set cashRange = sheet2.Range("D1:D10")
Set rentRange = sheet2.Range("D20:D30")

Select Case testValue 'based on what is in "f14"
    Case "Rent"
        'paste from k14
        '****I believe the below is the part you're really concerned with***

        For Each cell In cashRange
            If cell.Value = "" Then 'first empty cell
                    cell.Value = sheet1.Range("k14") 'make this more dynamic with a for loop if needed
                Exit For
            End If
        Next cell
    Case "Cash"

        'paste from k15
        For Each cell In rentRange ' make into a function to avoid repeated code
            If cell.Value = "" Then 'first empty cell
                    cell.Value = sheet1.Range("k14")
                Exit For
            End If
        Next cell

    Case "Accounts Receivable"
       'add a for loop here  based on other criteria
    Case Else
    'case not met

End Select


End Sub