从excel中的包装单元格中获取前两行文本

div*_*ivz 7 excel vba count line

我需要从excel中的包装单元格中取出前两行文本.例如,包装的Excel单元格包含如下文本:

wrapedtext1

wrappedtext2

wrappedtext3

wrappedtext4
Run Code Online (Sandbox Code Playgroud)

我只需要前两行作为'wrapedtext1wrappedtext2'.可能吗?

Sid*_*out 5

我只需要将前两行作为'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

希德