Board logo

標題: 請問如何設定紀錄檔 [打印本頁]

作者: tonycho33    時間: 2011-12-12 17:38     標題: 請問如何設定紀錄檔

請問目前有一個EXCEL檔
主檔為輸入內容
如何自動存取轉換成紀錄檔的格式
作者: tonycho33    時間: 2011-12-14 10:01

請問如何進行資料轉換呢
主檔sheet的格式轉換成紀錄檔sheet的格式
謝謝
作者: tonycho33    時間: 2011-12-15 14:40

回復 2# tonycho33


    請問兩個sheet的資料轉換,有人可以協助一下嗎
謝謝
作者: GBKEE    時間: 2011-12-15 17:21

本帖最後由 GBKEE 於 2011-12-15 17:31 編輯

回復 3# tonycho33
  1. Option Explicit
  2. Sub Ex()
  3.     Dim R As Integer, R1 As Integer, Rng As Range
  4.     R = 2: R1 = 2
  5.     Sheets("紀錄檔").UsedRange.Offset(1).Clear
  6.     Sheets("主檔").Activate
  7.     Do
  8.         Set Rng = Sheets("主檔").Range(Cells(R, "D"), Cells(R, "D").End(xlToRight)).Resize(3)
  9.         With Sheets("紀錄檔")
  10.             .Cells(R1, "A") = Cells(R, "A")
  11.             .Cells(R1, "B") = Cells(R, "B")
  12.            R1 = R1 + 1
  13.             .Cells(R1, "C").Resize(Rng.Columns.Count, 3) = Application.Transpose(Rng)
  14.             .Cells(R1, "G").Resize(Rng.Columns.Count) = Cells(R, "C")
  15.             R1 = R1 + Rng.Columns.Count
  16.         End With
  17.         R = R + 3
  18.     Loop While Cells(R, "D") <> ""
  19. End Sub
複製代碼
[attach]8818[/attach]
作者: tonycho33    時間: 2011-12-16 10:56

請問可以解釋一下程式的意思嗎
Cells(R1, "A") 的"A"是代表什麼含意呢
謝謝
作者: kobo    時間: 2011-12-16 11:11

R1 是變數指的是"列數"
"A"應是指A這個"欄位"
例R1=1  那Cells(R1, "A") =Range("A1")
亦可用Cells(R1, 1)表示
例R1=2  那Cells(R1, "B") =Range("B2")
亦可用Cells(R1, 2)表示
作者: tonycho33    時間: 2011-12-16 16:11

請問你說的空白處不能有字元
但我會連結公式,設定帶出來是『""』
這樣轉過去後還是會出現空白
有辦法解決這個問題嗎
謝謝
作者: register313    時間: 2011-12-16 20:50

本帖最後由 register313 於 2011-12-16 22:20 編輯

回復 7# tonycho33

清除不可見字元

方法1:在EXCEL內選取儲存格 複製 , 切換到WORD  貼上  
         在WORD內選取儲存格 複製 , 切換到EXCEL  貼上
方法2:利用VBA RTRIM與LTRIM  將每個儲存格內的不可見字元清除
作者: tonycho33    時間: 2011-12-19 13:27

方法2:利用VBA RTRIM與LTRIM  將每個儲存格內的不可見字元清除

請問指令要如何下呢
謝謝
作者: Hsieh    時間: 2011-12-19 14:06

回復 9# tonycho33


For Each a In UsedRange
    a.Value = Trim(a)
Next
作者: tonycho33    時間: 2011-12-19 15:37

加入後,出現資料型態不符 錯誤代碼:13
作者: register313    時間: 2011-12-19 16:35

回復 11# tonycho33

Option Explicit
Sub Ex()
    Dim R As Integer, R1 As Integer, Rng As Range, Rng1 As Range, a As Range
     For Each a In Sheets("主檔").UsedRange
      a.Value = Trim(a)
    Next
    R = 2: R1 = 2
    Sheets("紀錄檔").UsedRange.Offset(1).Clear
    Sheets("主檔").Activate
    Do
        Set Rng = Sheets("主檔").Range(Cells(R, "D"), Cells(R, "D").End(xlToRight)).Resize(3)
            With Sheets("紀錄檔")
            .Cells(R1, "A") = Cells(R, "A")
            .Cells(R1, "B") = Cells(R, "B")
           R1 = R1 + 1
            .Cells(R1, "C").Resize(Rng.Columns.Count, 3) = Application.Transpose(Rng)
            .Cells(R1, "G").Resize(Rng.Columns.Count) = Cells(R, "C")
            R1 = R1 + Rng.Columns.Count
        End With
        R = R + 3
    Loop While Cells(R, "D") <> ""
End Sub
作者: tonycho33    時間: 2011-12-20 11:54

請問為什麼run起來後,執行很久,按esc則停留錯誤在Next上
a.Value = Trim(a)
     Next
作者: register313    時間: 2011-12-20 12:09

回復 13# tonycho33

    excel 2003 執行無誤
    [attach]8848[/attach]
作者: tonycho33    時間: 2011-12-21 09:08

回復 4# GBKEE


    請問主檔sheet想轉成記錄檔2sheet
要怎麼改程式
作者: register313    時間: 2011-12-21 09:49

本帖最後由 register313 於 2011-12-21 09:55 編輯

[attach]8871[/attach]回復 15# tonycho33


[attach]8871[/attach]     修改GBKEE之 紀錄檔.XLS
作者: GBKEE    時間: 2011-12-21 15:40

回復 16# register313
另一迴圈 For
  1. Sub Ex2()
  2.     Dim A As Range, i As Integer, R1 As Integer, Rng As Range
  3.     For Each A In Sheets("主檔").UsedRange
  4.       A.Value = Trim(A)
  5.     Next
  6.     Sheets("紀錄檔2").UsedRange.Offset(1).Clear
  7.     With Sheets("主檔")
  8.         For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row Step 3
  9.             Set Rng = .Range(.Cells(i, "D"), .Cells(i, "D").End(xlToRight)).Resize(3)
  10.             With Sheets("紀錄檔2")
  11.                 R1 = .Cells(Rows.Count, "a").End(xlUp).Offset(1).Row
  12.                 .Cells(R1, "A").Resize(Rng.Columns.Count) = Rng.Cells(1, -2)
  13.                 .Cells(R1, "B").Resize(Rng.Columns.Count) = Rng.Cells(1, -1)
  14.                 .Cells(R1, "C").Resize(Rng.Columns.Count, 3) = Application.Transpose(Rng)
  15.                 .Cells(R1, "G").Resize(Rng.Columns.Count) = Rng.Cells(1, 0)
  16.             End With
  17.         Next
  18.     End With
  19. End Sub
複製代碼





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