vba - 将用户窗体中的值插入从固定单元格开始的 excel 工作表?
问题描述
我有一个单元格范围Sheets("INVOICE MAKER").Range("D18:D37")
(总共 20 个单元格)和一个名为Add Items的小用户窗体。
在UserForm中有一个Textbox和一个Submit Button。
因此,如果我在该文本框中写一些东西并单击提交按钮,则数据应该写入范围内的下一个可用空单元格Sheets("INVOICE MAKER").Range("D18:D37")
。如果所有 20 个单元格都填充了数据,则显示一条消息,例如"No more rows are available to write data"。
下面的代码不是从 开始写入数据Cell D18
,而是从 开始写入数据D1
。并且在 cell 之后不会停止D37
。
Option Explicit
Dim lRow As Long
Dim ws As Worksheet
Set ws = Worksheets("INVOICE MAKER")
lRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
'check for a part number
If Trim(Me.Textbox.Value) = "" Then
Me.Textbox.SetFocus
MsgBox "Please Type Item Name"
Exit Sub
End If
With ws
.Cells(lRow, 5).Value = Me.Textbox.Value
End With
End Sub
解决方案
希望以下代码对您有所帮助:
Public Working_Sheet As Worksheet
Public All_Cell_Value As Boolean
Public Write_Cell_No As Integer
Public Content As String
'When button in the form is clicked
Sub Button1_Click()
Write_Content
End Sub
'validation and content writing function
Public Function Write_Content()
All_Cell_Value = True
Set Working_Sheet = Worksheets("Sheet1")
For i = 18 To 37
If Trim(Working_Sheet.Cells(i, "D")) = "" Then
All_Cell_Value = False
Write_Cell_No = i
Exit For
End If
Next i
If All_Cell_Value = False Then
Content = InputBox("Enter the value")
If Content = "" Then
MsgBox ("No Data")
Else
Working_Sheet.Cells(i, "D").Value = Content
End If
Else
MsgBox ("Sorry content is full")
End If
End Function
推荐阅读
- javascript - 填充嵌套在模型内的数组内的文档,猫鼬
- r - 创建一个循环来预测数据框中每一列的值
- django-models - 模型元类与模型形式元类有何不同?
- javascript - 您可以在不更改对象构造函数的情况下向对象构造函数添加新的动态参数吗?
- android - Android 开发者控制台:在发布概览中选择发布轨道?
- python - 我们需要为下面的 CNN 模型优化多少模型参数?
- reactjs - 如何在 React js 中使用 web3 连接 mathwallet 和 coin98wallet?
- javascript - 使用 jest 中途停止并行执行
- c++ - 在这种情况下,如何解决未解决的外部符号错误?
- java - 使用 Maven 从 JAR 导入 Servlet