返回列表 上一主題 發帖

[發問] 請問VBA可以做到兩檔案比對後再產生另一檔案的比對結果嗎?

回復 35# stillfish00


   HELLO~stillfish00

目前是"K"欄與"M"欄,因為資料量比較多 所以都會拉到欄寬250左右~

TOP

回復 35# stillfish00


    HELLO~~~SORRY~~~剛剛寫錯了~~~

目前是"F"欄與"M"欄,因為資料量比較多 所以都會拉到欄寬250左右~

TOP

本帖最後由 happycoccolin 於 2013-8-2 14:32 編輯

回復 38# stillfish00


    哈囉~~~~~~~請問一下~~目前狀況如下

With .Columns("F")
        If .Width > 250 Then
          .Width = 250 (偵錯停在這一行)
          .WrapText = True
        End If
      End With
      With .Columns("M")
        If .Width > 250 Then
          .Width = 250
          .WrapText = True
        End If

"F"欄可不用逐筆資料自動換列 只要調整欄寬就好

TOP

回復 38# stillfish00


哈囉 stillfish00 大大

謝謝您的耐心溝通與協助!
成功了!!!!!放煙火~

也謝謝在這版幫助過我的版大與版友們

真的很感激大家的耐心解惑

也希望有朝一日我也能成為幫助人的角色

TOP

回復 40# stillfish00


    S大~不好意思想請教一下~如何將資料填入表頭呢?

我現在需要用到將某份資料轉檔,就差表頭名稱及欄位不同,也不用比對

我使用最笨的方法錄製巨集 但是表頭資料不知如何輸入~可以幫忙看看嗎~謝謝

Sub Macro1()
'
' Macro1 Macro
'

'
    Rows("1:1").Select
    ActiveSheet.Paste
    Range("B6").Select
    Workbooks.Open Filename:="C:\Users\Documents\VB\2\A_0814.xlsx"
    Range("A6:A50000").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Book2").Activate
    ActiveWindow.SmallScroll Down:=-3
    Range("B2").Select
    ActiveSheet.Paste
    Windows("A_0814.xlsx").Activate
    Range("B6:B50000").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Book2").Activate
    Range("D2").Select
    ActiveSheet.Paste
End Sub

TOP

回復 43# stillfish00


    S大~~~我有另開一個提問~在以下路徑~

http://forum.twbts.com/thread-10164-1-1.html

因為目前需要將一個檔案中 特定幾欄的資料取出(不用比對) 並產生一新檔案填入特定欄位

兩個檔案的表頭及欄位是不同的

而且目前A.xlsx是不固定的 需要由User自行選擇載入

有試著用之前的檔案修改 但是語法不純熟尚在學習中 所以想請教S大~~~

謝謝S大的回覆~~

TOP

本帖最後由 happycoccolin 於 2013-8-15 15:54 編輯

回復 43# stillfish00


    S大~若有的檔案是B5欄開始有的是B6欄開始 可以怎麼判斷?

還有若是新表格所有欄位都要有TITLE 可以都填上嗎~

謝謝Stillfish00大大!

TEST_130815.zip (12.98 KB)

TOP

回復 45# stillfish00


    S大~~~可以再請教一下這一段是在描述甚麼動作嗎~

Application.ScreenUpdating = False
  With Workbooks.Open(f)  這應該是指新開的資料檔嗎?
    With .Sheets(1)
      ar = .Range("A5:H" & .[A5].CurrentRegion.Rows.Count).Value 這句不懂甚麼意思
    End With
    .Close False
  End With
  Application.ScreenUpdating = True
  
  r = UBound(ar)
  With Workbooks.Add
    With .Sheets(1)
      For i = LBound(cIndexOld) To UBound(cIndexOld)
        .Cells(1, cIndexNew(i)).Resize(r).Value = Application.WorksheetFunction.Index(ar, 0, cIndexOld(i))
        .Cells(1, cIndexNew(i)).Value = arNewHeader(i)
      Next
    End With

TOP

回復 48# stillfish00


    哈囉S大~我試過了~~~感激不盡~

想請問一下若是我要跑資料從B5開始的 是要修改哪邊呢?

還是可以用判斷TITLE這種方式處理嗎?

EX:若TITLE(B4)是"Item"就從下一格(B5)開始取資料 一類的

不好意思..又以一般人的想法來提問~@@

謝謝S大的耐心與幫忙

TOP

回復 50# stillfish00


    謝S大的超快速解答~

我來多跑幾個檔案試試看~

目前有一段會有問題 我再多RUN幾個檔案看格式哪邊有不同~

.Cells(1, cIndexNew(i)).Resize(r).Value = Application.WorksheetFunction.Index(ar, 0, cIndexOld(i))

謝Stillfish00大~^________^

TOP

        靜思自在 : 一個人不怕錯,就怕不改過,改過並不難。
返回列表 上一主題