1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
|
Opção explícita
sFolder público como a corda
sFilename público () como a corda
NFiles público como o inteiro
GetFileList secundário ()
varFileList não ofuscante como a variação
Escurecer i como o inteiro
“Começ o diretório do usuário”
Com Application.FileDialog (msoFileDialogFolderPicker)
. Mostra
Se .SelectedItems.Count = 0 retiram então o submarino “usuário cancelado”
sFolder = .SelectedItems (1)
Extremidade com
“Começ uma lista de todas as limas neste diretório.”
“Anotar que isto não é recursive… embora poderia ser…”
varFileList = GetFileNames (sFolder, “*.txt”)
Se não IsArray (varFileList) então
MsgBox “nenhumas limas encontradas. ”, vbInformation
Retirar o submarino
Terminar se
“Setup a disposição do nome de arquivo baseada no diretório selecionado”
NFiles = UBound (varFileList) + 1
sFilename de ReDim (1 a NFiles)
“Copiar os nomes de arquivo em uma disposição da corda para o uso em outra parte”
Para i = 0 a UBound (varFileList)
sFilename (i + 1) = CStr (varFileList (i))
Em seguida i
OutputFilenames2XL
ImportFileContent
Submarino da extremidade
Função confidencial GetFileNames (sPath de ByVal como a corda, sFilter opcional como a corda) como a variação
“ Retorna uma disposição de uma dimensão com nomes de arquivo”
“ Retorna de outra maneira falso”
F não ofuscante como a corda
Escurecer i como o inteiro
Escurecer FileList () como a corda
Se sFilter = sFilter do "" então = “*.*”
Selecionar o caso Right$ (sPath, 1)
Encaixotar “\”, “/”
sPath = Left$ (sPath, Len (sPath) - 1)
Extremidade seleta
Conserva FileList de ReDim (0)
f = Dir$ (sPath & “\” & sFilter)
Fazer quando Len (f) > 0
Conserva FileList de ReDim (i) como a corda
FileList (i) = f
i = i + 1
f = Dir$ ()
Laço
Se FileList (0) <> esvazia então
GetFileNames = FileList
Mais
GetFileNames = falso
Terminar se
Terminar a função
Submarino confidencial OutputFilenames2XL ()
iBaseRow não ofuscante como o inteiro, iBaseCol como o inteiro
shTarget não ofuscante como a folha
Escurecer i como o inteiro
Ajustar o shTarget = o Application.ActiveSheet
iBaseRow = escala (“BaseCell”). Fileira
iBaseCol = escala (“BaseCell”). Coluna
“Povoar os campos de encabeçamento”
shTarget.Range (“ImportDate”). Valor = agora
shTarget.Range (“FolderPath”). Valor = sFolder
shTarget.Range (“NFiles”) = NFiles
“Povoar a coluna do nome de arquivo da tabela”
Para i = 1 a NFiles
shTarget.Cells (iBaseRow + i - 1, iBaseCol). Valor = sFilename (i)
Em seguida i
“Põr a fórmula para analisar gramaticalmente a identificação de transação na primeira coluna”
shTarget.Range (pilhas (iBaseRow, iBaseCol - 1), pilhas (iBaseRow + NFiles - 1, iBaseCol - 1)).FormulaR1C1 = “=MID (R [0] C [1], LEN (R [0] C [1]) - 14.8)”
Submarino da extremidade
ImportFileContent secundário confidencial ()
Escurecer i como o inteiro, j como o inteiro
Escurecer o shTarget como a folha
Escurecer o iBaseRow como o inteiro, iBaseCol como o inteiro
Escurecer o shSource como a folha
Escurecer o sActiveFilename como a corda
Escurecer o sFullPath como a corda
Escurecer o iRowCount como o inteiro
Escurecer o iTargetColumn como o inteiro
Escurecer o rSourceRange como a escala
Da “dados baixos loja para a folha que do alvo nós estamos construindo”
Ajustar o shTarget = o Application.ActiveSheet
iBaseRow = escala (“BaseCell”). Fileira
iBaseCol = escala (“BaseCell”). Coluna
“Processar agora cada nome de arquivo apenas importado à folha”
Application.ScreenUpdating = falso
Application.WindowState = xlMinimized
Application.Calculation = xlCalculationManual
Application.Visible = falso
Da “barra do progresso instalação”
frmProgress da carga
frmProgress.ProgressBar.Max = NFiles
frmProgress.ProgressBar.Value = 0
frmProgress.Show
Para i = 1 a NFiles
sActiveFilename = sFilename (i)
sFullPath = sFolder & “\” & sActiveFilename
“Lima de texto limitada importação”
Nome de arquivo de Workbooks.OpenText: =sFullPath, _
Origem: =437, StartRow: =1, DataType: =xlDelimited, TextQualifier: = _
xlDoubleQuote, ConsecutiveDelimiter: =False, aba: =True, Semicolon: =False, _
Vírgula: =False, espaço: =False, outro: =False, FieldInfo: =Array (1, 1), _
TrailingMinusNumbers: =True
“Armazenar o nome da folha e o formato/adiciona as fórmulas exigidas”
Ajustar o shSource = o Application.ActiveSheet
iRowCount = Application.WorksheetFunction.CountA (colunas (“A: ”))
shSource.Range (pilhas (1, 2), pilhas (iRowCount, 2)).FormulaR1C1 = “=FIND ("": "", R [0] C [- 1])”
shSource.Range (pilhas (1, 3), pilhas (iRowCount, 3)).FormulaR1C1 = “=IF (DEIXADO (R [0] C [- 2], 7) = "" do comentário do "", 61, VALOR (MEADOS DE (R [0] C [- 2], 2, R [0] C [- 1] - 2)))”
shSource.Range (pilhas (1, 4), pilhas (iRowCount, 4)).FormulaR1C1 = “=RIGHT (R [0] C [- 3], LEN (R [0] C [- 3]) - R [0] C [- 2] - 1)”
“Certificar-se que as pilhas são atualizados com os dados atuais (somente necessários se o cálculo é ajustado ao manual)”
shSource.Calculate
“Copiam agora os dados analisados gramaticalmente resultantes nas pilhas corretas na folha do alvo”
Para j = 1 ao iRowCount
iTargetColumn = CInt (shSource.Cells (j, 3). Valor)
Ajustar o rSourceRange = o shSource.Cells (j, 4)
shTarget.Cells (iBaseRow + i - 1, iBaseCol + iTargetColumn). Valor = rSourceRange.Value
J seguinte
“Finalmente fim a lima do manual de instruções da fonte desde que nós somos terminados com ela”
Manuais de instruções (sActiveFilename). SaveChanges próximo: =False
frmProgress.ProgressBar.Value = i
frmProgress.Repaint
Em seguida i
shTarget.Columns (“C: BK”) .EntireColumn.AutoFit
frmProgress.Hide
Application.Calculation = xlCalculationAutomatic
Application.Calculate
Application.ScreenUpdating = retificam
Application.WindowState = xlMaximized
Application.Visible = retificam
Submarino da extremidade
|