Excel 将数据复制到下一个空列

Excel 将数据复制到下一个空列,excel,vba,Excel,Vba,我想将数据复制到另一个工作表,但我希望宏确定要将数据复制到的下一个空列。因此,从范围C5开始,我希望它确定下一个空列是什么(D5,或E5或F5,直到M5),一旦确定,我希望它从下面指定的“主”工作表范围复制数据。我知道列值必须是一个传递给行值的变量,这样才能工作,但我还不知道如何工作。论坛上到处都有一些样本,但没有一个是我能够适应的 Sub Copy_To_Borrower_DBase() Worksheets("Borrower Database").Range("D5").Value =

我想将数据复制到另一个工作表,但我希望宏确定要将数据复制到的下一个空列。因此,从范围C5开始,我希望它确定下一个空列是什么(D5,或E5或F5,直到M5),一旦确定,我希望它从下面指定的“主”工作表范围复制数据。我知道列值必须是一个传递给行值的变量,这样才能工作,但我还不知道如何工作。论坛上到处都有一些样本,但没有一个是我能够适应的

Sub Copy_To_Borrower_DBase()

Worksheets("Borrower Database").Range("D5").Value = 
Sheets("Main").Range("F5").Value 'Borrower Name
Worksheets("Borrower Database").Range("D6:D8").Value = 
Sheets("Main").Range("G6:G8").Value 'Income, Credit and Car Pmt
Worksheets("Borrower Database").Range("D9:D10").Value = 
Sheets("Main").Range("G11:G12").Value 'Borrower Name
Worksheets("Borrower Database").Range("D11").Value = 
Sheets("Main").Range("G15").Value 'Reserves
Worksheets("Borrower Database").Range("D12").Value = 
Sheets("Main").Range("D15").Value 'Credit Score
Worksheets("Borrower Database").Range("D13").Value = 
Sheets("Main").Range("D14").Value 'Rate
Worksheets("Borrower Database").Range("D14").Value = 
Sheets("Main").Range("C14").Value 'Discount Point
Worksheets("Borrower Database").Range("D15").Value = 
Sheets("Main").Range("D17").Value 'More than 1 Borrower

End Sub

这个问题和数据并不难理解,因为它们似乎不符合100%,但我提供了这个示例来向您展示如何找到下一个免费的Column:

Dim sourceSheet as Worksheet
Dim destSheet as Worksheet

Set sourceSheet = Worksheets("source")
Set destSheet = Worksheets("dest")

getNextAvailableColumn(destSheet).Value = sourceSheet.Range("A1").Value
getNextAvailableColumn(destSheet).Resize(sourceSheet.Range("A2:B10").Rows.Count,sourceSheet.Range("A2:B10").Columns.Count).Value = sourceSheet.Range("A2:B10").Value

Function getNextAvailableColumn(ws as Worksheet) as Range

    Dim nextCol as Range
    With destSheet
        nextCol = .cells(1,.Columns.Count).End(xlLeft).Offset(,1)
    End With

    Set getNextAvailableColumn = nextCol

End Function

这个问题和数据并不难理解,因为它们似乎不符合100%,但我提供了这个示例来向您展示如何找到下一个免费的Column:

Dim sourceSheet as Worksheet
Dim destSheet as Worksheet

Set sourceSheet = Worksheets("source")
Set destSheet = Worksheets("dest")

getNextAvailableColumn(destSheet).Value = sourceSheet.Range("A1").Value
getNextAvailableColumn(destSheet).Resize(sourceSheet.Range("A2:B10").Rows.Count,sourceSheet.Range("A2:B10").Columns.Count).Value = sourceSheet.Range("A2:B10").Value

Function getNextAvailableColumn(ws as Worksheet) as Range

    Dim nextCol as Range
    With destSheet
        nextCol = .cells(1,.Columns.Count).End(xlLeft).Offset(,1)
    End With

    Set getNextAvailableColumn = nextCol

End Function

刚刚清理了代码并添加了第一个空列(lCol)


刚刚清理了代码并添加了第一个空列(lCol)


斯科特,这对我不管用。让他们更好地解释我的需要。斯科特,这对我不起作用。我想把借贷者的数据复制到一列中。我希望能够检测下一个空白列,以复制下一个借款人的数据,最多10组借款人数据。所以C列有数据描述,D到M列是不同借贷者数据集将被复制到的地方。我的思路是找到一种方法来检测从D列开始的下一个空白列是什么。一旦检测到该列,我就可以将其与范围代码中的行号进行耦合。@MEC Scott提供了在其代码中查找下一个空列的方法。它从Dim nextCol as Range开始。谢谢scott和@GMalc,它像一个符咒一样工作:-)scott这对我不起作用。让他们更好地解释我的需要。斯科特,这对我不起作用。我想把借贷者的数据复制到一列中。我希望能够检测下一个空白列,以复制下一个借款人的数据,最多10组借款人数据。所以C列有数据描述,D到M列是不同借贷者数据集将被复制到的地方。我的思路是找到一种方法来检测从D列开始的下一个空白列是什么。一旦检测到该列,我就可以将其与范围代码中的行号进行耦合。@MEC Scott提供了在其代码中查找下一个空列的方法。它从Dim nextCol as Range开始。谢谢scott和@GMalc,它像一个符咒一样工作:-)