Sta*_*ome 5 excel vba excel-vba
在MS Excel中通过VBA宏将超过255个字符附加到单个单元格中真的不可能吗?
示例代码:
Option Explicit
Sub TestSub()
Dim L As Long
' Const str = "1" & vbLf
Dim i As Integer
Range("A1").ClearContents
Range("A1").WrapText = True
For i = 1 To 260 ' any number greatest than 255
L = Range("A1").Characters.Count
Debug.Print L
Range("A1").Characters(L + 1, 1).Insert ("A")
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
补充: 在单元格中保存以前的字符格式非常重要.
以下代码会将 500 写入A
cell A1
。之后,所有其他内容都A
将被格式化为粗体。
Public Sub tmpSO()
For i = 1 To 500
Range("A1").Value = Range("A1").Value & "A"
Next i
For i = 1 To 500
If i Mod 2 = 0 Then Range("A1").Characters(i, 1).Font.Bold = True
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
我希望这能解决你的问题。
注意:您的代码将不起作用,因为您试图在 后面 L + 1
插入一个字符。然而,您的字符串目前只是L
很长而不是 L + 1
。一旦插入另一个单元格,该单元格中A
就会有L + 1
字符。但尚未。所以,如果你使用你的代码,那么Range("A1").Characters(L, 1).Insert ("A")
它就会起作用。
以下代码已经过测试,可以正确地将 500 插入A
到 cell 中A1
。此外,其中一些A
将被格式化为粗体。
Sub TestSub()
Dim i As Integer
Range("A1").ClearContents
Range("A1").WrapText = True
Range("A1").Font.Bold = False
For i = 1 To 500
Range("A1").Characters(i, 1).Insert ("A")
Next i
For i = 1 To 500 Step 10
Range("A1").Characters(i, 3).Font.Bold = True
Next i
End Sub
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2422 次 |
最近记录: |