如果我从文本框中复制文本,那么当我粘贴它的字体更改

我有一个excel用户表单的问题。 在用户表单中我有一个textbox2,该值是一些combobox的结果。 然后我从属性中更改了textbox2的格式字体,这是工作时,我有结果文本框2显示正确的字体,但如果我复制它与CTRL + C和尝试粘贴在Excel或Outlook邮件中的字体更改calibri …为什么会这样呢? 我也试过自动copytoclipboard我会粘贴代码。

Dim clipboard As MSForms.DataObject Set clipboard = New MSForms.DataObject clipboard.SetText Me.TextBox2.Text clipboard.PutInClipboard 

这是有效的,因为如果我按CTRL + V它粘贴结果在textbox2反正它改变字体格式…

提前致谢!

PS:我更喜欢find一个解决scheme,允许我手动从textbox2复制字体格式,但如果这是不可能的代码解决scheme也将罚款。 非常感谢!

你在混淆事物。

用户窗体上的文本框有一个Font属性,您可以手动设置/读取代码(请参阅Benno的答案)。

但是,这个字体名称不是input到该文本框中的文本的一部分。 该文本框只存储纯文本 ,这是从复制时得到的所有内容。

因此,将其粘贴到另一个文档时,将使用该文档的默认或当前字体(通常为Calibri for Office文档)。

您可以下载免费剪贴板查看器 ,它显示复制后的剪贴板中的各种格式的东西。 复制纯文本(从文本编辑器或文本框)或格式化文本(从网页或Word中)是完全不同的。

所以:你不能从文本框中复制字体信息。

您可以将单元格的字体设置为TextBox的字体(这应该至less适用于Excel)

 Range("A1").Font.Name = TextBox2.Font 'A1 is only an example 

此外,您可以尝试创build一个macros,每当单元格更改时运行此macros( Workbook_Change ) 在这里查找更多信息。