vba - 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
任何指导将不胜感激。
解决方案
- 在 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
无论内容如何,此命令都将采用该工作表中曾经使用过的最右侧列旁边的列,因此左侧的列也可能看起来是空的。
更改 的另一个参数
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
推荐阅读
- excel-formula - 为什么这个 Countifs 功能不起作用?
- chisel - 访问 regmap RegFields
- css - 有没有办法让左边框填满所有空间(没有内部间隙)?
- excel - 在 VBA 中找到正确的运行时错误行
- r - 在传单中选择/取消选择多个多边形以使用 R Shiny 更新绘图图表
- github - 如何在 github 上打开拉取请求以改进 bitbucket fork?
- java - 位置监听器适用于 Android 6.0 但不适用于 android 8.0+
- java - 应用程序重启后 Spring Boot 无法从 Oracle 数据库中读取
- cmake - CMake在运行时从子目录中的其他库链接错误
- python - 如何使用 python IMAP 从 gmail 中删除电子邮件?