我有一列名稱,日期和標題,我嘗試輸出到文本框。我期待的輸出格式有以下「列」:基於字符串的當前長度將可變字符數添加到字符串
名稱|日期|標題|索引號
由於這只是一個文本框,我不得不使用製表符[chr(9)]來維護此表的「列」的間距。但是,由於人們有不同的長度名稱,我需要能夠輸入不同數量的選項卡,以便每個「列」正確排列。 (問題只在名稱和日期之間,其他「列」間距正確)
我試過下面的代碼,它假設(很可能不正確)該tab = 7個空格(我試過其他數字)。它試圖將日期與最初的Date標題標題一致,這是從左邊緣起的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的名稱中的一些(不是全部)名稱沒有足夠的標籤。
有沒有人有解決這個問題?或者我可以用另一種方式表示這些數據(即不是文本框)?
您可以使用固定寬度的字體(如Courier)作爲文本框(如@NickSlash所示),只需填充空格而不是使用製表符。更容易設置,但固定寬度的字體通常不會很好看...... –
重新閱讀您的問題,「有另一種方式嗎?」是!你可以使用列表框,因爲它們支持列 – NickSlash