div*_*ivz 7 excel vba count line
我需要从excel中的包装单元格中取出前两行文本.例如,包装的Excel单元格包含如下文本:
wrapedtext1
wrappedtext2
wrappedtext3
wrappedtext4
Run Code Online (Sandbox Code Playgroud)
我只需要前两行作为'wrapedtext1wrappedtext2'.可能吗?
我只需要将前两行作为'wrapedtext1wrappedtext2'.这有可能吗???
是的,它可能是可能的,但没有简单的方法来实现它.您需要考虑很多因素.
1)像素行高
2)字体类型和大小
3)行间距
4)细胞是否合并?
5)单元格是否处于自动调整状态
6)所有文本是否处于正常模式或是否具有任何粗体/斜体/下划线字符等
考虑这个快照

例如,像素中的行高可以从中派生出来
Debug.Print Range("A1").Height * (24 / 18)
在这种情况下可以实现字体大小
Debug.Print Range("A1").Font.Size
但挑战是在下面的场景中会发生什么?

在我看来,实现你想要的东西真的太痛苦了.最好的部分是使用ALT + Enter插入换行符然后检索文本.
跟进
字符串通过vba代码输入到包装的单元格中.那么如何通过按alt + enter来插入数据呢? - 1355 4小时前
在这种情况下,您也可以采取类似的方法.
Sub Sample()
Dim strg As String
strg = "This is a sample" & vbCrLf & _
"sentence which is" & vbCrLf & _
"in Cell A1 and the" & vbCrLf & _
"text is separated" & vbCrLf & _
"with line breaks"
With Range("A1")
.Columns(1).ColumnWidth = 16.86
.Font.Name = "Calibri"
.Font.Size = 11
.Value = strg
End With
End Sub
Run Code Online (Sandbox Code Playgroud)
注意:对于上述内容,您将必须记录一个宏,并查看可以采用特定格式的字体,字体大小和列宽.同样,您将不得不考虑以下事实:我上面给出的示例是针对新工作表中的非格式化单元格.如果要写入合并的单元格或每个格式化的单元格,则必须相应地更改上述代码,这可以通过录制宏来轻松实现.我也假设ZOOM级别设置为100%
快照

HTH
希德
| 归档时间: |
|
| 查看次数: |
14279 次 |
| 最近记录: |