我是一名没有VBA知识或经验的Oracle程序员。我被要求修改一些Excel宏,这些宏是为我们从工资单提供者处获得的报告编写的,以便更容易查看,然后搜索一些不同的场景。
薪酬服务提供商更改了报告的布局,因此我需要相应地更改宏。
旧报告在员工的每一行都有会计代码。新报告按照会计代码对员工进行分组,并在下面列出三行的代码中列出不同的行数,并将员工分配给该会计代码。
会计代码用斜杠字符分隔,如下所示:
code1/code2/code3/code4/code5
code6/code7/code8/code9/
code10/code11/code12
EmployeeID Name (Last Name, First Name) Pos# EarnCode Earnings
N1234567 Messi, Leonardo 09876 LT1 $ 3,185.55
N2345678 Iniesta, Andreas 08765 REG $ 1,980.10
N3456789 Hernandez, Xavier 07654 REG $ 2,027.80
code1/code2/code3/code4/code5
code6/code7/code8/code9/
code10/code11/code12
EmployeeID Name (Last Name, First Name) Pos# EarnCode Earnings
N4567890 Hazard, Eden 06543 REG $ 2,187.15
N5678901 Fabregas, Cesc 05432 LT1 $ 1,875.60
N6789012 Terry, John, 04321 NBO $ 1,290.50
N7890123 Thibaut, Courtois 03219 REG $ 1,365.25
我需要将code4和code7移动到它们下面的每个员工行的单独列,然后显然在会计代码更改为适当的员工时更改变量值。如果它是SQL,我会使用instr来查找第三个斜杠的位置,然后使用下面的五个字符:
substr(instr(ACCT_CODES, '/', 3), 5)
SQL的instr函数可以计算所讨论项目的出现次数,但在VBA中它只能找到第一个位置(从我能找到的位置。)我已经尝试了VBA函数Split但是没有使它工作爱好。
如何提取我需要的内容并将其分配给下面行中使用的变量?
答案 0 :(得分:0)
你可以使用split将一个字符串拆分成一个数组,Split(ACCT_CODES,“/”)(6)会给你第7个,(3)会给你第4个