2015-03-13 60 views
0

下午,換行文字;限制字符數每行

我需要幫助創建公式或vba來限制每行連接信息。我將空間「49個字符」限制在需要粘貼的應用程序中。

是否有一個公式,我可以用來獲取這些信息,幾乎沒有任何操縱。可能沒有分裂的話?

這裏是我目前正在使用,以換行文本式的一個示例: 其中該信息被遵守的細胞是「EM」

= IF(AF1143 = 0,「否TOOLING NEEDED/NO PO TO ISSUE「,CONCATENATE(」Supplier:「,T1143,」將建立一個「,CA1143」工具,能夠始終如一地生產PN「 」,I1143,「 3D數據,以滿足「G1143」程序和服務的 壽命的100%生產要求。模具付款條款:收到模具訂單發貨時的1/3 ,1/3收到首批零件 {第一條提交內容} {{包含完整版圖數據和工具 數據表和1/3收到來自「,」,「,E1143」的PPAP批准, 已簽署的PSW就足以進行此確認。 「,」請保留 與COMPANY買家聯繫並提供以上所有信息 - 關於 延期付款。以上截止日期僅爲估計值。實際日期爲 ,由「,」,「E1143,」,「,」確定。 「,」每週工具進度報告(TPR) 必須提供給NPC在「,」「,E1143,」;這些TRP必須以兩週爲間隔提供 。如果不這樣做將導致付款延遲 {供應商門戶/ SQAM可以查看TPR樣本。關鍵事件 時間:請參閱「,E1143」,「,」NPC日程 - 如果NPC日程是 不可用請與買方聯繫副本。原產地:工具 將在:「,BW1143,」FOB:「,T1143,」「,BW1143,其他 信息:PN,」「,I1143,」「,K1143,」「,」工具總數: 「,」AF1143「,」 「,」每個工具的成本:「,AR1143,」「,推理:」,AS1143,「」,「詳細的 工具信息:」,AT1143,「」,「ECI:{if applicable} :「,DW1143,」 「,」交貨時間:「,EL1143,」「,」SOP假設:「,O1143,」「,」質量 生產/生命計劃{年}:「,Q1143,供應商: 「,DG1143,」「,」Design Review Date:「,DE1143,」「,DF1143,」「,」CER TRACKING NUMBER#:「,FB1143,」「,」ACCOUNT NUMBER#「,FC1143, 「」,「TOOLING PO#:」,EN1143,「。」))

+0

你可以嘗試反向對於某些字符(空格,逗號等)的搜索字符串的第一個49個字符。然後取出字符串的第一個字符到這一點,附加一個回車符,然後重複其餘的字符串。這至少是一個起點。 – OpiesDad 2015-03-13 19:17:12

+0

瞭解,並希望這樣做,但我concatenate的信息可能會有所不同。 – TR2419 2015-03-13 19:50:33

+0

目前尚不清楚你想要做什麼。沒有辦法以49個字符來適應所有的內容,所以如果你必須手動執行,你會怎麼做? – 2015-03-14 00:01:41

回答

0

這裏就是我的意思:

Public Function LimitLine (StringToLimit As String, NumberOfLetters As Integer) As String 
    Dim TheString As String 
    Dim Output As String 
    Dim CommaLoc As Integer 
    Dim BlankSpaceLoc As Integer 

    Output = "" 
    TheString = StringToLimit 

    Do WHile Len(TheString) > NumberOfLetters 
     BlankSpaceLoc = InStrRev(Left(TheString, NumberOfLetters), " ") 
     CommaLoc = InStrRev(Left(TheString, NumberOfLetters), ",") 
     If BlankSpaceLoc > CommaLoc Then 
       Output = Output & Left(TheString, BlankSpaceLoc) & vbCr 
       TheString = Right(TheString, Len(TheString) - BlankSpaceLoc) 
     Else 
       Output = Output & Left(TheString, CommaLoc) & vbCr 
       TheString = Right(TheString, Len(TheString) - CommaLoc) 
     End If 
    Loop 
    Output = Output & TheString 
    LimitLine = Output 
End Function