我正在尝试修改excel的附加组件,该附加组件从工作表的每个单元格中获取数据并将其放入文本框中,以便更容易地读取和修改信息。
由于某些单元格包含大量文本(默认情况下文本框只有一行足够大),我试图使文本框可调,以便用户能够看到所有文本细胞
以下链接是一张图片,因此您确切地知道我的意思:
http://www.jibberjobber.com/blog/wp-content/chrome_resize_text_boxes.png
请理解我不希望将表单简单地放大到特定大小,因为这很容易实现,但我更愿意让用户选择最适合的大小文字,大小和字体的数量。
提前感谢您的回答!
答案 0 :(得分:1)
一种不同的方法。更改运行时文本框设置。在这种情况下
Private Sub TextBox2_Enter()
showTextbox2Text
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
returnOriginalTextbox2Text
End Sub
Sub showTextbox2Text()
TextBox3.Visible = False
TextBox2.MultiLine = True
TextBox2.Height = 75 'make some calculation to adapt to your with and text in textbox
End Sub
Sub returnOriginalTextbox2Text()
TextBox3.Visible = Visible 'original setting
TextBox2.MultiLine = False 'original setting
TextBox2.Height = 25 'original setting
End Sub
答案 1 :(得分:0)
您希望用户以更好的方式查看和编辑信息吗? 你可以制作一个技巧......即打开一个新表格,原始文本框中的信息现在位于更大的文本框中。此表单可以是通用的,可以在所有文本框中使用,也可以通过按钮调用。
答案 2 :(得分:0)
关注 原始 问题,即:
“ ...我希望允许用户选择最适合文字,大小和字体数量的尺寸”
您可以将以下代码放在用户窗体代码窗格中:
Option Explicit
Private mouseLeft As Single, mouseTop As Single
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) '<~~ change "TextBox1" to whatever the actual name of your textbox
If Button = 1 Then
mouseLeft = X
mouseTop = Y
End If
End Sub
Private Sub TextBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) '<~~ change "TextBox1" to whatever the actual name of your textbox
If Button = 1 Then
With Me.TextBox1 '<~~ change "TextBox1" to whatever the actual name of your textbox
.Width = .Width + X - mouseLeft
.Height = .Height + Y - mouseTop
End With
mouseLeft = X
mouseTop = Y
End If
End Sub
用户可以将文本框边框拖动到所需的尺寸