2015-09-10 4 views
-1

Я хочу смешать данные из двух файлов в один лист Excel визуальный базовый код должен импортировать два листа в один.Изменение типа данных

Что я хочу сделать, это изменить типы данных этих разных данных, чтобы они соответствовали одному столбцу.

Например: файл А

col A | col B 
int(2)|int(4) 

FILE B

col A | col B 
int(5)| int(2) 

должны вписываться в

Файл C

col A | col B 
int(3)| int(3) 

как сделать этот вид сценария? Не знаю, с чего начать. Тип данных может быть любым, что не просто int, я просто хочу, чтобы они были определены где-то в коде.

редактировать:

Содержание из файла A и файл B должен появиться в файле C Столбец А из файла A и B должны идти в файл C в колонке также называется со всеми данными FiLea: A и fileB: A

+1

Что вы подразумеваете под смешиванием? Я не получаю эту часть. –

+0

Как упомянул Том, не могли бы вы дать более подробную информацию о том, как вы хотите, чтобы столбцы смешивались (ака слились, я предполагаю)? Например, файл C's COLA = FileAcolA & FileBcolB или иногда col A из файла a, а иногда и один из файла b на основе содержимого? – Bryan

+0

Я только что редактировал мое сообщение, вы можете взять минус обратно, если теперь все в порядке? – Jules

ответ

0

Все еще не уверен, что вы хотите, но вот какой-то код и ссылка, чтобы вы начали. Код, который я буду использовать, - это сокращенная версия, которая может быть найдена here или here. Приведенный ниже код получает данные из xlsx-файлов без их открытия и объединяет два набора данных столбца с запятой.

Dim FileAColA As Variant 
Dim FileAColB As Variant 
Dim FileBColA As Variant 
Dim FileBColB As Variant 
Dim arg As String 
Dim i As Integer 

i = 2 

'Gets data from FileA col a then b then same for fileB 
arg = "'C:\Workspace\trash\[FileA.xlsx]Sheet1'!R" & i & "C1" 
FileAColA = ExecuteExcel4Macro(arg) 
arg = "'C:\Workspace\trash\[FileA.xlsx]Sheet1'!R" & i & "C2" 
FileAColB = ExecuteExcel4Macro(arg) 
arg = "'C:\Workspace\trash\[FileB.xlsx]Sheet1'!R" & i & "C1" 
FileBColA = ExecuteExcel4Macro(arg) 
arg = "'C:\Workspace\trash\[FileB.xlsx]Sheet1'!R" & i & "C2" 
FileBColB = ExecuteExcel4Macro(arg) 

'While loop to continue until no data in all 4 cells, when no data in cell varient will be 0 
While FileAColA <> 0 And FileAColB <> 0 And FileBColA <> 0 And FileBColB <> 0 
    Cells(i, 1).Value = FileAColA & "," & FileBColA 'Combines values with a comma in between 
    Cells(i, 2).Value = FileAColB & "," & FileBColB 'Combines values with a comma in between 

    i = i + 1 

    'Gets data from FileA col a then b then same for fileB 
    arg = "'C:\Workspace\trash\[FileA.xlsx]Sheet1'!R" & i & "C1" 
    FileAColA = ExecuteExcel4Macro(arg) 
    arg = "'C:\Workspace\trash\[FileA.xlsx]Sheet1'!R" & i & "C2" 
    FileAColB = ExecuteExcel4Macro(arg) 
    arg = "'C:\Workspace\trash\[FileB.xlsx]Sheet1'!R" & i & "C1" 
    FileBColA = ExecuteExcel4Macro(arg) 
    arg = "'C:\Workspace\trash\[FileB.xlsx]Sheet1'!R" & i & "C2" 
    FileBColB = ExecuteExcel4Macro(arg) 
Wend 

Если вы не хотите, чтобы объединить с запятой, а вместо этого хотят, чтобы добавить их вместе, то вместо FileAColA & «» & FileBColA вы можете сделать FileAColA + FileBColA. Если вы хотите, чтобы они были объединены каким-то другим способом, вам придется объяснять более подробно и предпочтительно включать примеры данных до и после столбца.

Смежные вопросы