Excel 如何从包装单元格中获取前两行文本?
我需要从Excel中的包装单元格中提取前两行文本。例如,包装的Excel单元格包含以下文本:Excel 如何从包装单元格中获取前两行文本?,excel,vba,count,line,Excel,Vba,Count,Line,我需要从Excel中的包装单元格中提取前两行文本。例如,包装的Excel单元格包含以下文本: wrapedtext1 wrappedtext2 wrappedtext3 wrappedtext4 我只需要前两行“wrappedtext1 wrappedtext2”。有可能吗?您好,有两种方法可以使用VBA代码执行此操作 第一条路。如果线之间用空格分隔 Dim avarSplit As Variant 'If separated with a space avarSplit = Spli
wrapedtext1
wrappedtext2
wrappedtext3
wrappedtext4
我只需要前两行“wrappedtext1 wrappedtext2”。有可能吗?您好,有两种方法可以使用VBA代码执行此操作 第一条路。如果线之间用空格分隔
Dim avarSplit As Variant
'If separated with a space
avarSplit = Split(Worksheets(2).Range("A7").Value, " ")
第二种方式,如果他们是分开的休息
Dim avarSplit2 As Variant
'separated with a break
avarSplit2 = Split(Worksheets(2).Range("A8").Value, Chr(10))
然后你得到一个数组,其中所有的行是分开的,你可以读出它们
穆斯利
我只需要得到前两行“wrappedtext1 wrappedtext2”。可能吗
是的,它可能是可能的,但是没有简单的方法来实现它。有很多因素你必须考虑。
1) 行高(像素)
2) 字体类型和大小
3) 行距
4) 单元格合并了吗
5) 单元格是否处于自动调整状态
6) 所有文本是否都处于正常模式,或者是否有任何粗体/斜体/下划线字符等
考虑一下这个快照
例如,以像素为单位的行高可以从
Debug.Print范围(“A1”).高度*(24/18)
上述情况下的字体大小可以通过以下方式实现
Debug.Print范围(“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
注意:对于上述,您必须记录一个宏,并查看可以采用特定格式的字体、字体大小和列宽。再次,您必须考虑到我上面给出的例子是在一个新的表中的非格式化单元格。如果要写入合并单元格或每个格式化单元格,则必须相应地更改上述代码,这可以通过录制宏轻松实现我还假设缩放级别设置为100%
快照
嗯
Sid您可以在Excel中使用一些复杂的公式来实现这一点,而无需VBA代码 假设多行文字位于A1中。如果只需要前两行,可以执行以下操作: 获取第一行:
=MID(A1,1,IF(2=LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1,LEN(A1),SEARCH("@",SUBSTITUTE(A1,CHAR(10),"@",2))))
获取第二行:
=MID(A1,SEARCH("@",SUBSTITUTE(A1,CHAR(10),"@",1))+1,IF(2=LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1,LEN(A1),SEARCH("@",SUBSTITUTE(A1,CHAR(10),"@",2)))-SEARCH("@",SUBSTITUTE(A1,CHAR(10),"@",1)))
然后简单地使用CONCATENATE()
组合这两种方法
查看此网站,它允许您指定要获取的行:
使用查找功能:
=左(B2,(查找(字符(10),B2)))
- 查找搜索换行符(CHAR(10)
- LEFT为您提供B2中的前X个字符,直至找到换行符的数字