これはあなたにとっては簡単かもしれませんが、私はVBAで新しくなりました。excel vbaでリストを追加/更新する
私は、それらのうちの1つがキー値である「id」である多くの列を持つExcelファイルを持っています。私はファイルの選択を開くためのコードを書いた。
Sub GetFile()
Dim fNameAndPath As Variant
fNameAndPath = Application.GetOpenFilename(FileFilter:="Excel Files (*.XLSM), *.XLSM", Title:="Select File To Be Opened")
If fNameAndPath = False Then
Exit Sub
Workbooks.Open Filename:=fNameAndPath
End Sub
このリストには、他のファイル(同じ列名が異なる値と不確定な行数を持つ)を追加する必要があります。そして、 "id"カラムが追加されたファイルで同じ値を持つ場合、古いものは完全に削除されるべきです。
提案はありますか?
Option Explicit
Dim myWorkbooks As New Collection
Sub GetFile()
Dim fNameAndPath As Variant, i As Long, x As Variant
fNameAndPath = Application.GetOpenFilename("All Files (*.*), *.*", , "Select Files To Be Opened", , True)
If Not IsArray(fNameAndPath) Then
If fNameAndPath = False Then Exit Sub Else fNameAndPath = Array(fNameAndPath)
End If
For i = LBound(fNameAndPath) To UBound(fNameAndPath)
Set x = Workbooks.Open(fNameAndPath(i))
myWorkbooks.Add x
Next
End Sub
これは、複数のファイルを開くことができますし、また、それら(それらへのポインタ)を格納します。私はこのような何かを示唆してあなたの最初の問題を解決するために
まあまあです。私はこれをやっている間に任意の量のファイルを選択できるようにしたい。また、 "id"列の値がすでに同じ場合、リスト内の古い列の値が削除されます。 –
私はファイル選択を開く方法を知っていますが、それらが変数であれば、リストに他のファイル値を追加する方法はわかりません(いくつかのファイルのうちのいくつかは100などです)。レコードマクロでそれを行うことができます。また、私は2つの値が同じかどうかをチェックし、古いものを削除するアルゴリズムを知らない。 –
私はそれを編集しましたが、私はどんな応答も受け取りません。 –