我用来收集文本 InputBox 的当前功能显然不能接受超过 255 个字符,我需要能够收集更多吗?我可以使用参数或不同的函数来增加此限制吗?
问问题
13244 次
3 回答
5
有点迂腐,输入框最多可以输入 255 个字符,但它只会返回 254 个字符。
除此之外,是的,您需要创建一个带有文本框的简单表单。然后只需制作一些“辅助功能”,例如:
Function getBigInput(prompt As String) As String
frmBigInputBox.Caption = prompt
frmBigInputBox.Show
getBigInput = frmBigInputBox.txtStuff.Text
End Function
或类似的东西...
于 2010-06-03T21:15:09.677 回答
2
感谢 BradC 提供的信息。我的最终代码大致如下,我有一个按钮,可以调用我创建的表单并将其定位,因为在我第一次使用后,每次表单都在错误的位置时遇到了一些问题。
Sub InsertNotesAttempt()
NoteEntryForm.Show
With NoteEntryForm
.Top = 125
.Left = 125
End With
End Sub
用户窗体是一个文本框和两个命令按钮(取消和确定)。按钮的代码如下:
Private Sub CancelButton_Click()
Unload NoteEntryForm
End Sub
Private Sub OkButton_Click()
Dim UserNotes As String
UserNotes = NotesInput.Text
Application.ScreenUpdating = False
If UserNotes = "" Then
NoteEntryForm.Hide
Exit Sub
End If
Worksheets("Notes").ListObjects("Notes").ListRows.Add (1)
Worksheets("Notes").Range("Notes").Cells(1, 1) = Date
Worksheets("Notes").Range("Notes").Cells(1, 2) = UserNotes
Worksheets("Notes").Range("Notes").Cells(1, 2).WrapText = True
' Crap fix to get the wrap to work. I noticed that after I inserted another row the previous rows
' word wrap property would kick in. So I just add in and delete a row to force that behaviour.
Worksheets("Notes").ListObjects("Notes").ListRows.Add (1)
Worksheets("Notes").Range("Notes").Item(1).Delete
NotesInput.Text = vbNullString
NotesInput.SetFocus ' Retains focus on text entry box instead of command button.
NoteEntryForm.Hide
Application.ScreenUpdating = True
End Sub
于 2010-06-07T15:00:52.143 回答
1
我没有足够的代表发表评论,但您可以在助手的子 form_load 中添加:
me.AutoCenter = True
在该表单之外,您可以这样做:
NoteEntryForm.Show
Forms("NoteEntryForm").AutoCenter = True
当我从工作时的两台额外显示器转到家中的另一台显示器时,我的 Access 表单会变得很混乱,有时会迷失在角落里。这个 AutoCenter 已经成为我每一个表单的表单属性。
于 2016-05-06T20:36:27.837 回答