View Full Version : [SOLVED:] Add data from many files (they are in same format)
keemain2
03-09-2007, 07:04 AM
my code is:
Sub Macro2()
' Macro2 Macro
' 宏由 MS User 录制,时间: 2007-3-9
With ActiveSheet.QueryTables.Add(Connection:= _
"FINDER;file:///G:/a326/ICStock(1).asp", Destination:=Range("A1"))
.Name = "ICStock(1)"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "16"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
------------------------------------------------
i want to change these code: file:///G:/a326/ICStock(1).asp .
because i have files from ICStock(1).asp to ICStock(1000).asp .
i need to select them at once when i adding datas.
Not sure if this is what you want...
Sub Macro2()
Dim X as Long
For X = 1 To 1000
With ActiveSheet.QueryTables.Add(Connection:= _
"FINDER;file:///G:/a326/ICStock(" & CStr(X) & ").asp", destination:=range("A1"))
.Name = "ICStock(" & CStr(X) & ")"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "16"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Next
End Sub
Is it necessary to set all of those properties? Did you record a Macro to get this code?
keemain2
03-09-2007, 11:53 PM
Thanks Glen .
i get these code from recording a Macro.
here is my question again:
according to your code replied to me,
how to set the Range? it is changing from A1,A60,A119,A178……A29442.
Sub Macro2()
Dim X As Long
For X = 1 To 1000
With ActiveSheet.QueryTables.Add(Connection:= _
"FINDER;file:///G:/a326/ICStock(" & CStr(X) & ").asp", destination:=range("A1"))
.Name = "ICStock(" & CStr(X) & ")"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "16"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Next
End Sub
James
keemain2
03-10-2007, 12:39 AM
according to Glen's code.
i solved my problem by myself:
here is the code:
Sub add_data_hqew6()
' add_data_hqew6 Macro
' 宏由 MS User 录制,时间: 2007-3-9
' 快捷键: Ctrl+m
Dim X, y As Long
y = -58
For X = 1 To 1000 '这里设置文件:个数,下面第 3 行修改文件夹位置
y = y + 59
With ActiveSheet.QueryTables.Add(Connection:= _
"FINDER;file:///G:/a326/ICStock(" & CStr(X) & ").asp", Destination:=Range("A" & CStr(y) & ""))
.Name = "ICStock(" & CStr(X) & ")"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "16"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Next
End Sub
Thanks Glen again.
Without your helping, i could not make it.
thanks VBA Express Forum.
thanks.
----------------
James from Shenzhen, China.
March 10th , 2007
Well done James.
For future reference, you should make sure you dimension your variables separately:
Dim X as Long
Dim Y as Long
X is not set as Long in your code. It defaults to variant if not explicitly set
try this to test:
Dim X as Long
Dim Y as Long
msgbox "X = " & typeName(X) & vbnewline & "Y = " & typeName(Y)
Dim X, Y as Long
msgbox "X = " & typeName(X) & vbnewline & "Y = " & typeName(Y)
The first message box should tell you that X is Long while the second should say that it is "empty".
Also you don't need the empty string here:
"FINDER;file:///G:/a326/ICStock(" & CStr(X) & ").asp", Destination:=Range("A" & CStr(y) & ""))
Can be:
"FINDER;file:///G:/a326/ICStock(" & CStr(X) & ").asp", Destination:=Range("A" & CStr(y)))
keemain2
03-14-2007, 10:54 PM
ths Glen.
I understand your code completely now.
ths for helping.
--------------------------------
James march 15th, 2007
That's great. You can mark this thread as solved using Thread Tools.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.