文本框两端对齐
时 间:2020-11-06 18:01:18
作 者:猫猫 ID:28985 城市:北京
摘 要:textbox文本框字符串两端对齐,看看哪位大神再给改进改进。
正 文:
'利用access textbox(64位) 分散对齐,空值每行数量,并处理文本中部分符号及尾部对齐。需要自己确定文本长度。
Function GetCharLen(pChar() As Byte) As Long
GetCharLen = 1 - (pChar(1) <> 0)
End Function
Dim myStr As String
Dim Length As Long
Dim arrStr() As String
Dim tmpLen As Long
Dim tmpBit As Long
Dim Idx As Long
Dim i As Long
Dim Fcharacters As Variant
Dim TempByte() As Byte
Dim Nullspaces As Integer
Dim Numvalues As Variant
On Error GoTo dygs_Err
Fcharacters = ",.:;?:,。;、!:?" '开头不可以出现的符号********
myStr = text_name
Length = Len(myStr)
ReDim arrStr(Length * 2)
For i = 1 To Length
tmpBit = i
tmpLen = 0
Do
tmpLen = tmpLen + GetCharLen(Mid(myStr, i, 1))
i = i + 1
Loop Until tmpLen >= number or i > Length
If tmpLen > number Then i = i - 1
If InStr(Fcharacters, Right(Mid(myStr, tmpBit, i - tmpBit + 1), 1)) <> 0 And _
InStr(Fcharacters, Left(Mid(myStr, tmpBit, i - tmpBit), 1)) <> 0 Then
arrStr(Idx) = Mid(myStr, tmpBit + 1, i - tmpBit + 1)
Else
If InStr(Fcharacters, Right(Mid(myStr, tmpBit, i - tmpBit + 1), 1)) <> 0 Then
arrStr(Idx) = Mid(myStr, tmpBit, i - tmpBit + 1)
Else
If InStr(Fcharacters, Left(Mid(myStr, tmpBit, i - tmpBit), 1)) <> 0 Then
arrStr(Idx) = Mid(myStr, tmpBit + 1, i - tmpBit)
Else
arrStr(Idx) = Mid(myStr, tmpBit, i - tmpBit)
End If
End If
End If
Idx = Idx + 1
i = i - 1
Next i
ReDim Preserve arrStr(Idx)
'尾端数据对齐,判断数组最后一行字符串数量并添加空值。
TempByte = Mid(myStr, tmpBit, i)
If (UBound(TempByte) + 1) > number Then
Nullspaces = number - (UBound(TempByte) + 1) Mod number
Else
Nullspaces = number - (UBound(TempByte) + 1)
End If
For Z = 1 To Nullspaces
Numvalues = Numvalues & Chr(2)
Next
AlignBothEnds = Left(Join(arrStr, vbCrLf), Len(Join(arrStr, vbCrLf)) - 1) & Numvalues
dygs_Exit:
Exit Function
dygs_Err:
MsgBox Error$
Resume dygs_Exit
End Function
Private Sub Command1_Click()
Text2 = AlignBothEnds(Text1, 63)
End Sub
附 件:
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)