Board logo

標題: VBA 轉 txt檔(不同資料於不同欄位) [打印本頁]

作者: lifedidi    時間: 2013-4-19 10:20     標題: VBA 轉 txt檔(不同資料於不同欄位)

大大好:
因為平常都用記事本輸入,記事本對於要修改或特別標註的功能很差,
想要改用excel方便作業,但是最後還是得要輸出成記事本檔,附件有範例
和excel(敘述),謝謝。

(未來可能會再加增欄位,請在變數的地方註解一下,感謝)

[attach]14706[/attach]
作者: GBKEE    時間: 2013-4-19 15:14

回復 1# lifedidi
試試看
  1. Sub 檢查錯誤()
  2.     With Sheets("Sheet1").Range("d:d")
  3.         .Replace "T", "t", xlPart
  4.         .Replace "x", "X", xlPart
  5.     End With
  6. End Sub
  7. Sub 轉換成記事本()
  8.     Dim fs As Object, a As Object, i As Integer
  9.    Set fs = CreateObject("Scripting.FileSystemObject")
  10.     Set a = fs.CreateTextFile("D:\transform\123.tx", True)
  11.     With Sheets("Sheet1").Range("a1").CurrentRegion
  12.         For i = 1 To .Rows.Count     '第一列開始轉入記事本
  13.             a.WriteLine Join(Application.Transpose(Application.Transpose(.Rows(i).Value)), vbTab)
  14.         Next
  15.     End With
  16.     a.Close
  17. End Sub
複製代碼

作者: lifedidi    時間: 2013-4-19 16:29

大大你好:
假如我在檢查錯誤這加入
───────────────────────────
Sub 檢查錯誤()
    With Sheets("Sheet1").Range("d:d")
        For i = 1 To 9999
        If .cell(3, i).Value = "PLATE" Then
            .Replace "T", "t", xlPart
            .Replace "x", "X", xlPart
        End If
        Next
    End With
End Sub
───────────────────────────
我想表達是 如果前方欄位名稱為"PLATE"則執行大小寫轉換
請問哪裡需要修改呢?

可以成功轉換!謝謝!
可是欄位號碼是錯的,程式會抓不到數據。
EX:
23100-0030        1      PLATE   30tX2000X500                    SA-516-70                 20
這筆資料中間都是【半行】的空白,不是【全行】or【Tab】
感謝!
作者: GBKEE    時間: 2013-4-19 18:00

回復 3# lifedidi
  1. Sub 檢查錯誤()  '以也可以如此
  2.     With Sheets("Sheet1").Range("c:c")
  3.         If Not .Find("PLATE", LookIn:=xlValues) Is Nothing Then
  4.             .Replace "PLATE", "=xxx", xlWhole         '替換為公式:錯誤的公式名稱
  5.             With .SpecialCells(xlCellTypeFormulas, xlErrors)
  6.                 With .Offset(, 1)
  7.                     .Replace "T", "t", xlPart
  8.                     .Replace "x", "X", xlPart
  9.                 End With
  10.                 .Value = "PLATE"                      '復原為原來的字串
  11.             End With
  12.         End If
  13.     End With
  14. End Sub
複製代碼
可是欄位號碼是錯的,程式會抓不到數據。

這說明看不懂
  1. 【轉換記事本】        
  2. 項目          對應記事本欄數
  3. 編號        1
  4. MARK        19
  5. 類別        26
  6. 規格        34
  7. 材質#1        65
  8. 材質#2        78
  9. 數量        93   ←這比較特別 需要從後面往前 EX: 數量54個 則 5在92欄 4在93欄 類推
  10. REMARK        94
複製代碼

作者: lifedidi    時間: 2013-4-19 22:46

本帖最後由 lifedidi 於 2013-4-19 22:47 編輯

大大你好:
謝謝你的幫忙,檢查錯誤OK了。

對於另一個問題,請看下圖
[attach]14717[/attach]

圖中打錯字@@,【以第一來說】
作者: genes    時間: 2013-4-19 23:07

回復 5# lifedidi

text to column? fixed width, 1 19 ...




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)