我有一个试图输出到文本框的名称、日期和标题列表。我希望输出的格式具有以下“列”:
姓名 | 日期 | 标题 | 索引号
由于这只是一个文本框,我必须使用制表符 [chr(9)] 来保持此表的“列”的间距。但是,由于人们有不同的长度名称,我需要能够输入不同数量的选项卡,以便每个“列”正确排列。(问题仅在名称和日期之间,其他“列”间隔正确)
我尝试了以下代码,它假设(很可能不正确)tab = 7 个空格(我尝试过其他数字)。它尝试将日期与初始日期标题标题对齐,该标题距左边缘 4 个选项卡。作为对我的符号的注释,为了简单起见,我用括号中的 [文本框] 和 [名称] 替换了文本框和名称的复杂路径。以下循环运行:
[Text Box].Text = "Name" & Chr(9) & Chr(9) & Chr(9) & Chr(9) & "Date" & Chr(9) & "Reason" & Chr(9) & "Index#" & Chr(10)
[[Begin Loop]]
[Text Box].Text = [Text Box].Text & [Name]
If Len([Name]) >= 0 And Len([Name]) < 7 Then
[Text Box].Text = [Text Box].Text & Chr(9) & Chr(9) & Chr(9) & Chr(9)
ElseIf Len([Name])>= 7 And Len([Name]) < 14 Then
[Text Box].Text = [Text Box].Text & Chr(9) & Chr(9) & Chr(9)
ElseIf Len([Name]) >= 14 And Len([Name]) < 21 Then
[Text Box].Text = [Text Box].Text & Chr(9) & Chr(9)
ElseIf Len([Name]) >= 21 And Len([Name]) < 28 Then
[Text Box].Text = [Text Box].Text & Chr(9)
End If
NOTE: I found that names that were an exact multiple of 7 were one tab too short, thus I added:
If Len([Name]) = 7 Or Len([Name]) = 14 Or Len([Name]) = 21 Then
[Text Box].Text = [Text Box].Text & Chr(9)
End If
[[End Loop]]
文本框中的 100 多行中的大多数都正确排列,但似乎一些 len = 14 的名称(不是全部)有一个额外的选项卡。当我删除为 7 的倍数添加额外选项卡的代码时,len = 14 的某些(不是全部)名称的选项卡不够充分。
有人对此有解决方案吗?或者我可以用另一种方式表示这些数据(即不是文本框)?