如何解决是否有Excel函数或简单的宏来确定单元格中的文本是左侧还是右侧?
我有一列多行。每行包含文本。有些文本左对齐,有些在中间,有些在右。
我想再增加一列,每行将收到一个值:如果文本在左侧对齐,则为“ LEFT”,如果在中间,则为“ MIDDLE”,等等。
有什么想法怎么做?
解决方法
据我所知,尚无确定细胞比对的公式。 但是,您可以使用VBA创建UDF(用户定义函数)来实现此目的。
例如,如果将以下内容放在VBA中的模块中...
Function CELL_ALIGNMENT(r As Range) As String
Select Case r.HorizontalAlignment
Case -4131
CELL_ALIGNMENT = "LEFT"
Case -4108
CELL_ALIGNMENT = "CENTER"
Case -4152
CELL_ALIGNMENT = "RIGHT"
Case Else
CELL_ALIGNMENT = "OTHER"
End Select
End Function
...然后在单元格B1中键入以下内容...
=CELL_ALIGNMENT(A1)
...这将告诉您单元格A1中文本的对齐方式。
,唯一的方法是在VBA中创建UDF:
您可以执行3个功能:1个用于获取水平对齐方式,另一个用于获取垂直对齐方式,最后一个用于将这些数值转换为文本:
Public Function GET_H_ALIGN(ByVal rng As Range) As String
If rng.Count <> 1 Then
GET_H_ALIGN = "ERROR"
Else
GET_H_ALIGN = CONVERT_XL(rng.HorizontalAlignment)
End If
End Function
Public Function GET_V_ALIGN(ByVal rng As Range) As String
If rng.Count <> 1 Then
GET_V_ALIGN = "ERROR"
Else
GET_V_ALIGN = CONVERT_XL(rng.VerticalAlignment)
End If
End Function
Private Function CONVERT_XL(ByVal vValue As Long) As String
Select Case vValue
Case Is = -4160
CONVERT_XL = "Left"
Case Is = -4131
CONVERT_XL = "Left"
Case Is = -4108
CONVERT_XL = "Center"
Case Is = -4152
CONVERT_XL = "Right"
Case Is = -4107
CONVERT_XL = "Right"
Case Is = 1
CONVERT_XL = "None"
Case Else
CONVERT_XL = "Error"
End Select
End Function
需要函数CONVERT_XL将数字常量转换为文本值。您可以在此处查看选项:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。