У меня есть рабочий скрипт Perl, который я бы хотел преобразовать в VBA для запуска в макросе Excel, чтобы он мог быть легко доступен для других ПК. У меня есть сценарий оболочки (где я передаю параметры), управляющий скриптом perl. Я использовал скрипт Perl для чтения каждого указанного столбца всех строк данных из файла с фиксированной шириной (ниже начала 54,63) и сравнить эти данные с другим файлом и распечатать разницу. Я передал бы параметры в сценарии оболочки как runpro.pl filea.txt fileb.csv > myoutput.txt
Любая помощь была бы замечательной! Особенно, если кто-то может указать мне в правильном направлении, так как код довольно прост. Благодаря!Преобразование Perl Script в VBA Script
#!/usr/bin/perl
#Perl Script runpro.pl
#***************************************************
use strict;
use warnings;
my ($fa, $fb) = @ARGV;
@ARGV = $fa;
my %codes;
while(<>) {
s/[\r\n]+\z//;
$_ = substr($_, 54, 63);
s/\s+\z//;
next if $_ eq "";
$codes{$_} =1;
}
@ARGV = $fb;
my %descrip;
while(<>) {
s/[\r\n]+\z//;
s/,.*//;
s/"//g;
$descrip {$_} = 1 if s/^1234//;
}
for (sort keys %codes) {$
print "$_\n" unless ($descrip{$_});
}
Можете ли вы привести пример того, как вы будете использовать функцию VBA - как вы передаете параметры и где вы хотите вывести вывод? Это не совсем ясно из вашего вопроса ... – Floris
Я отредактировал с приведенным выше примером. Благодарю. @Floris – todayspresent
Проверьте это: http://docs.activestate.com/activeperl/5.6/faq/Windows/ActivePerl-Winfaq12.html «Если вы записываете макрос в Microsoft Office, это часто можно перевести непосредственно в Perl». – isomorphismes