【问题标题】:Concatenation of 2 strings and superscript2个字符串和上标的连接
【发布时间】:2020-01-19 05:18:07
【问题描述】:

我的问题是我有 3 个单元格 A1 、 B1 和 C1 ; A1 包含一个数字, B1 一个字符串, C1 包含 B1 和 A1 的串联。假设 A1 包含值 1 , B1 包含值 "Test" ;我希望 C1 包含 Test1 但以 1 作为上标。这是我编写的代码,但它不起作用:

Sub exposantmiseenforme()

    Dim i As Integer
    Dim C As Range
    Dim l As Integer

    l = Len(Range("B1"))
    C = Range("C1")

    With C.Characters(Start:=l, Length:=l + 1).Font
        .Name = "Calibri"
        .FontStyle = "Normal"
        .Size = 11
        .Strikethrough = False
        .Superscript = True
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ThemeColor = xlThemeColorLight1
        .TintAndShade = 0
        .ThemeFont = xlThemeFontMinor
    End With

End Sub

提前感谢您的帮助!

【问题讨论】:

  • 显示当前输出的示例可能会有所帮助,即使它不是您想要的。这可能有助于错误诊断。
  • 我从未见过在 VBA 代码中使用 >>>> 这样的方法。目的是什么?

标签: excel vba string-formatting string-concatenation superscript


【解决方案1】:

试试这个

Sub exposantmiseenforme()

Dim l As Integer

l = Len(Range("B1"))
Worksheets("Sheet1").Range("C1").Characters(l + 1, 1).Font.Superscript = True

End Sub

希望对您有所帮助。 (我假设那个细胞已经制定好了)

【讨论】:

    【解决方案2】:

    您可以尝试以下方法(假设您的行数不仅仅是单元格 A1 和 B1):

    样本数据:

    代码:

    Sub SuperScriptTxt()
    
    Dim rng As Range, cl As Range, lr As Long
    With ThisWorkbook.Sheets("Sheet1") 'Change accordingly
        lr = .Cells(.Rows.Count, "A").End(xlUp).Row
        Set rng = .Range("C2:C" & lr)
        For Each cl In rng
            cl.Value = cl.Offset(, -2) & cl.Offset(, -1) 'Leave out this line, if concatenated values are actually already in place.
            cl.Characters(Len(cl.Offset(, -2)) + 1, Len(cl.Offset(, -1))).Font.SuperScript = True
        Next cl
    End With
    
    End Sub
    

    结果:

    【讨论】:

      【解决方案3】:

      您缺少第 6 行设置:

      Set C = Range("C1")
      

      这实际上是您想要在活动工作表上为 C1 中字符串的最后一个字符下标:

      ActiveSheet.Range("C1").Characters(Start:=Len(Range("C1").Value), _
      Length:=1).Font.Superscript = True
      

      你写它的方式应该是整个文本的上标,而不仅仅是 1。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-02-03
        • 2014-05-14
        • 1970-01-01
        • 1970-01-01
        • 2022-09-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多