基于另一个Excel文件中的值增加字母数字代码

我对VBA非常陌生,在使用VBA在Excel中进行自动化时遇到了困难。

自动化问题

这个想法是根据可以在另一个Excel文件中find的值自动生成Excel文件中的字母数字代码。

为了简单起见,我们将这两个文件称为原始文件 (我的文件)和目标文件 (其中的值可以find)。 两者具有完全相同的格式,即相同的列标题。

为了解决这个问题,我把它分成4个部分:

1)确定包含目标文件的目录。

我在网上find了一些可以帮助我的代码 –

Sub getdirectory() Dim xRow As Long Dim xDirect$, xFname$, InitialFoldr$ InitialFoldr$ = "G:\" '<<< Begins searching from here With Application.FileDialog(msoFileDialogFolderPicker) .InitialFileName = Application.DefaultFilePath & "\" .Title = "Please select a folder to list Files from" .InitialFileName = InitialFoldr$ .Show If .SelectedItems.Count <> 0 Then xDirect$ = .SelectedItems(1) & "\" xFname$ = Dir(xDirect$, 7) Do While xFname$ <> "" ActiveCell.Offset(xRow) = xFname$ xRow = xRow + 1 xFname$ = Dir Loop End If End With End Sub 

2)select最近的目标文件(根据其date)

在这里输入图像说明

在这种情况下(如图所示),最下面的文件是最近的,应该被选中。

3)一旦select了这个目标文件,我们根据一些条件select这个目标文件中第1列的代码值最大,

条件1:在原始文件中,如果“账户types”=站点和段=“操作”,则以“OSM”开始的具有最高值的目标文件中的代码(即OSM_SITE_0006805)被返回到原始文件 ,代码增加1.然后关于相同条件的后续代码增加1。

条件2:在原始文件中,如果“账户types”=站点和段=“销售”,那么目标文件中具有最高值 OSE_SITE_0006105的以'OSE'开始的代码被返回到原始文件 ,代码以1递增。然后关于相同条件的后续代码增加1。

该过程继续,直到原始文件中的所有行都已经完成。

最后结果

在这里输入图像说明

我可以从这个社区获得的任何意见将是非常有帮助的,并将certificate对我来说是一个很好的学习。