【发布时间】:2020-02-17 07:35:17
【问题描述】:
我正在使用用户表单界面为自己制作一个简单的跟踪电子表格,从许多不同的在线教程中学习,因为我以前从未编写过代码。 使用 excel 功能区,我设置了具有特定格式的某些单元格,一个用于日期(日月年)和一个用于货币([$$-en-AU]-#,##0.00;[Red]-[$$ -zh-CN]-#,##0.00)。
我的问题是:每当我在 textbox6、textbox20、textbox21 和 textbox22 中输入数据时,然后关闭用户窗体,将所有输入的数据传输到工作表中。 输入到上述文本框中的数据会覆盖单元格的格式。 无论用户在文本框中输入什么内容,有什么方法可以锁定单元格格式或使其使用某种格式?
这是在将数据添加到工作表和卸载用户表单时使用的代码:
Private Sub cmdAdd_Click()
'Copy input values to sheet.
Dim rw As Integer
Dim ws As Worksheet
Dim lrow As Long
Dim LO As ListObject
Dim LEO As Range
Set ws = Worksheets("2020_Data")
Set LO = ws.ListObjects("Table1")
'lrow = ws.Cells(Rows.Count, "B") .End(xlUp). .Offset(1, 0) .Row
With LO.Range.Columns(2)
Set LEO = .Find(what:="", after:=.Cells(1), LookIn:=xlValues, _
searchorder:=xlByRows, searchdirection:=xlNext)
If Not LEO Is Nothing Then
lrow = LEO.Row
' MsgBox LEO.Row 'First empty row at column B
End If
End With
'rw = ws.Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookInValues) .Row + 1
With ws
.Cells(lrow, "B") = Me.TextBox6
.Cells(lrow, "C") = Me.TextBox21
.Cells(lrow, "F") = Me.ComboBox2
.Cells(lrow, "G") = Me.ComboBox3
.Cells(lrow, "I") = Me.TextBox16
.Cells(lrow, "H") = Me.TextBox17
.Cells(lrow, "J") = Me.TextBox18
【问题讨论】:
-
请在问题中包含您尝试使用的代码,并说明您在使用它时遇到的问题。
-
嗨braX,我还没有尝试任何代码,只使用excel功能区中的单元格编号/日期格式选项。我已经编辑了我的问题以反映这一点。谢谢
-
这几乎肯定是代码的问题,特别是从文本框中转储值的部分。如果我不得不猜测,你正在做
Range(A2) = textbox而不是Range(A2).Value = textbox.Value -
嗨,Brax,我已经编辑了我的原始问题以包含卸载用户表单时使用的代码。你介意指出我哪里出错了吗?