VBA格式字符串
现在一切都是红色的。我需要冒号后面的所有内容都是黑色,而不是斜体。您可以更改此行以使文本变为黑色:VBA格式字符串,vba,excel,powerpoint,Vba,Excel,Powerpoint,现在一切都是红色的。我需要冒号后面的所有内容都是黑色,而不是斜体。您可以更改此行以使文本变为黑色: .Color.RGB = RGB(216, 3, 33) 这一行删除斜体: .Italic = msoFasle 编辑: 如果您有单元格位置,可以稍后对字符串执行以下操作: With Cells(1, 1).Characters(9, 21).Font .Color = vbBlack .Italic = False .Name = "Corbel" .
.Color.RGB = RGB(216, 3, 33)
这一行删除斜体:
.Italic = msoFasle
编辑:
如果您有单元格位置,可以稍后对字符串执行以下操作:
With Cells(1, 1).Characters(9, 21).Font
.Color = vbBlack
.Italic = False
.Name = "Corbel"
.Size = 20
演示如何使用字符
编辑:
要更改文本框的部分文本,可以声明包含格式不同的字符串的两个变量,并将它们附加到文本框中
其形式如下:
MyTextBox.Value=MyStringVariable
或者在您的情况下:
MyTextBox.Value=MyStringVariable1&MyStringVariable2您可以更改此行使文本变为黑色:
.Color.RGB = RGB(216, 3, 33)
这一行删除斜体:
.Italic = msoFasle
编辑:
如果您有单元格位置,可以稍后对字符串执行以下操作:
With Cells(1, 1).Characters(9, 21).Font
.Color = vbBlack
.Italic = False
.Name = "Corbel"
.Size = 20
演示如何使用字符
编辑:
要更改文本框的部分文本,可以声明包含格式不同的字符串的两个变量,并将它们附加到文本框中
其形式如下:
MyTextBox.Value=MyStringVariable
或者在您的情况下:
MyTextBox.Value=MyStringVariable1&MyStringVariable2宏记录器发现以下内容:
Sub test()
ActiveSheet.Shapes.Range(Array("txtbox1")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = _
"Choisir: wefhweufhwef 344tr saefaefa" 'Entering some text'
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 5).Font 'Selecting some font and changing some settings
.NameComplexScript = "+mn-cs"
.NameFarEast = "+mn-ea"
.Fill.Visible = msoTrue
.Fill.ForeColor.RGB = RGB(0, 0, 255)
.Fill.Transparency = 0
.Fill.Solid
.Size = 11
.Name = "+mn-lt"
End With
End Sub
如果不先选择文本框,我就无法做到这一点(??也许有人可以帮助,通常并不难)。您可以使用字符串输入文本,在该字符串中,您可以使用
dim MyString as string
dim intColon as integer
Mystring = "cwsvws:wifvwhivw"
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = MyString
intColon = instr(MyString, ":")
并将其用作插入宏记录器代码的字符计数。然后,您可以根据需要格式化不同的文本块
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(intColon, 5).Font
.Fill.ForeColor.RGB = RGB(0, 0, 255)
.Fill.Transparency = 0
.Fill.Solid
.Size = 11
.Name = "+mn-lt"
End With
希望这有帮助。宏记录器发现以下内容:
Sub test()
ActiveSheet.Shapes.Range(Array("txtbox1")).Select
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = _
"Choisir: wefhweufhwef 344tr saefaefa" 'Entering some text'
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 5).Font 'Selecting some font and changing some settings
.NameComplexScript = "+mn-cs"
.NameFarEast = "+mn-ea"
.Fill.Visible = msoTrue
.Fill.ForeColor.RGB = RGB(0, 0, 255)
.Fill.Transparency = 0
.Fill.Solid
.Size = 11
.Name = "+mn-lt"
End With
End Sub
如果不先选择文本框,我就无法做到这一点(??也许有人可以帮助,通常并不难)。您可以使用字符串输入文本,在该字符串中,您可以使用
dim MyString as string
dim intColon as integer
Mystring = "cwsvws:wifvwhivw"
Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = MyString
intColon = instr(MyString, ":")
并将其用作插入宏记录器代码的字符计数。然后,您可以根据需要格式化不同的文本块
With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(intColon, 5).Font
.Fill.ForeColor.RGB = RGB(0, 0, 255)
.Fill.Transparency = 0
.Fill.Solid
.Size = 11
.Name = "+mn-lt"
End With
希望这能有所帮助。您只需分离冒号后面的字符,并根据需要设置颜色: 编辑:忘记斜体字了
Sub test()
sCallOut = "ACTION: [Insert Callout Here]"
Set oShp = pptSld.Shapes.AddTextbox(msoTextOrientationHorizontal, 110, 100, 557.28, 94.32)
oShp.Line.Visible = msoFalse
oShp.TextFrame.TextRange.Text = sCallOut
oShp.TextFrame.TextRange.ParagraphFormat.Alignment = ppAlignCenter
With oShp.TextFrame.TextRange.Font
.Name = "Corbel"
.Italic = msoTrue
.Size = 20
.Color.RGB = RGB(216, 3, 33)
.Bold = msoTrue
End With
With oShp.TextFrame.TextRange
With .Characters(InStr(.Characters, ":") + 1, .Length).Font
.Color.RGB = RGB(0, 0, 0)
.Italic = msoFalse
End With
End With
Set oShp = Nothing
End Sub
您只需隔离冒号后面的字符,并根据需要设置颜色: 编辑:忘记斜体字了
Sub test()
sCallOut = "ACTION: [Insert Callout Here]"
Set oShp = pptSld.Shapes.AddTextbox(msoTextOrientationHorizontal, 110, 100, 557.28, 94.32)
oShp.Line.Visible = msoFalse
oShp.TextFrame.TextRange.Text = sCallOut
oShp.TextFrame.TextRange.ParagraphFormat.Alignment = ppAlignCenter
With oShp.TextFrame.TextRange.Font
.Name = "Corbel"
.Italic = msoTrue
.Size = 20
.Color.RGB = RGB(216, 3, 33)
.Bold = msoTrue
End With
With oShp.TextFrame.TextRange
With .Characters(InStr(.Characters, ":") + 1, .Length).Font
.Color.RGB = RGB(0, 0, 0)
.Italic = msoFalse
End With
End With
Set oShp = Nothing
End Sub
你能解释一下你想改变的字符范围吗?我有一个字符串sCallOut,我在代码块后面将它分配给oShp.TextFrame.TextRange.Font。使用With语句,我将该字符串的属性更改为全部红色、大小20、斜体等等。它是powerpoint幻灯片的子标题。但是,我需要“Action:”将上述属性与我当前的with语句一起显示,并且我需要“[Insert Callout Here]”为Corbel,而不是斜体、大小为20和黑色。是否有一种方法可以从我的字符串中为此文本框选择一系列字符,并在不更改整个字符串的情况下更改它们的属性?我已更新了答案。我希望这有帮助!你能解释一下你想改变的字符范围吗?我有一个字符串sCallOut,我在代码块后面将它分配给oShp.TextFrame.TextRange.Font。使用With语句,我将该字符串的属性更改为全部红色、大小20、斜体等等。它是powerpoint幻灯片的子标题。但是,我需要“Action:”将上述属性与我当前的with语句一起显示,并且我需要“[Insert Callout Here]”为Corbel,而不是斜体、大小为20和黑色。是否有一种方法可以从我的字符串中为此文本框选择一系列字符,并在不更改整个字符串的情况下更改它们的属性?我已更新了答案。我希望这有帮助!他说的是文本框而不是单元格。他说的是文本框而不是单元格。这个答案适用于普通文本框,而不是ActiveX文本框。有了activeX,它会更容易(我认为)和更直接。这个答案是针对普通的文本框,而不是activeX文本框。有了activeX,它将更容易(我认为)和更直接。