首页 > 解决方案 > Excel VBA:USerform P&L 已输入列

问题描述

我是一个菜鸟 - 擅长调整代码,没有从头开始开发它的经验,但我正在努力学习。只需要一些加速帮助。

我拥有的是一个损益表用户表单,我正在尝试创建一些 VBA 来搜索下一个空白列,然后在第一个空白列中输入损益标签,在第二列中输入损益值。

我已经开始尝试了,但似乎只是跨行而不是向下一列。我知道这是因为lRow, 1-7范围但是如果我将其更改为lRow, 1对于所有条目它只会在一个单元格中重叠。似乎我可能需要一个循环,但我不确定并且有点超出我的深度。

到目前为止我尝试的代码仅适用于标签。当我在旁边的列(下一个空白列)中选择“保存”时,不确定如何将值合并到同一个 VBA 中。

 Private Sub CommandButton2_Click()
 'Copy input values to sheet.
    Dim lRow As Long
    Dim ws As Worksheet
        Set ws = Worksheets("Database")
    lRow = ws.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
    With ws
        .Cells(lRow, 1).Value = Me.saleslbl
        .Cells(lRow, 2).Value = Me.costofsaleslbl
        .Cells(lRow, 3).Value = Me.netincomelbl
        .Cells(lRow, 4).Value = Me.accountinglbl
        .Cells(lRow, 5).Value = Me.rentlbl
        .Cells(lRow, 6).Value = Me.bankfeeslbl
        .Cells(lRow, 7).Value = Me.utilitieslbl
    End With
End Sub

任何指导将不胜感激。

标签: vbaexcel

解决方案


  1. 在 Excel 中查找第一个空白列是一个常青问题。SO上有很多解决方案。基本上你有2个选择:

1.a.:

Dim lCol As Long
lCol = ws.Cells(ws.Columns.Count, 1).End(xlToLeft).Offset(0, 1).Column

此命令将查找第一行中第一个空单元格的列,但忽略该列中的所有其他单元格。

1.b.:

lCol = ws.UsedRange.Columns.Count + 1

无论内容如何,​​此命令都将采用该工作表中曾经使用过的最右侧列旁边的列,因此左侧的列也可能看起来是空的。

  1. 更改 的另一个参数Cells,例如:

    .Cells(1, lCol).Value = Me.saleslbl
    .Cells(2, lCol).Value = Me.costofsaleslbl
    ....
    .Cells(1, lCol + 1).Value = Me.salestextbox    ' or whatever is the name of the textbox
    .Cells(2, lCol + 1).Value = Me.costofsalestextbox
    

推荐阅读