Excel宏-请解释此代码 如果数据\u版本
严格来说,它没有任何作用,因为您有一个尾随Excel宏-请解释此代码 如果数据\u版本,excel,excel-2003,vba,Excel,Excel 2003,Vba,严格来说,它没有任何作用,因为您有一个尾随End If,它与前面的If不匹配。但是 它查看工作表中称为“人员”的连续行,从第5行开始,当发现第一列中没有任何内容时停止。对于每一行,它都会查找编号在变量ResumeFile中的列。如果那里除了空白什么都没有,它会将其完全清除。否则,它将丢弃前两个字符,并将其余字符插入到神奇字符串过程中!B$18&“值在这里”,它将其存储(作为公式)到同一单元格中。这里,&执行字符串连接 最后,出于某种原因,它选择单元格A1 因此,如果工作表的该列之前包含“Fred
End If
,它与前面的If
不匹配。但是
它查看工作表中称为“人员”的连续行,从第5行开始,当发现第一列中没有任何内容时停止。对于每一行,它都会查找编号在变量ResumeFile
中的列。如果那里除了空白什么都没有,它会将其完全清除。否则,它将丢弃前两个字符,并将其余字符插入到神奇字符串过程中!B$18&“值在这里”
,它将其存储(作为公式)到同一单元格中。这里,&
执行字符串连接
最后,出于某种原因,它选择单元格A1
因此,如果工作表的该列之前包含“Fred”、“Jim”和“Sheila”,并且“Process”工作表的单元格B18包含“Boo!”,那么您将得到“Boo!ed”、“Boo!m”和“Boo!eila”。而没有看到它应该操作的电子表格的单元格格式和解释(以及语义),这很难解释。显然,有一个名为“People”的工作表,它从第5行开始,但我假设变量“ResumeFile”设置在此例程之外,并引用工作表中的一个特定列,您希望在每一行中对该列进行处理,直到在第一列中找到一个单元格为空的行。这会有什么作用?它似乎链接了来自不同工作表的数据。刚刚编辑了代码。请再次查看。谢谢!好的,我又看了一遍。我认为对我所说的内容所做的更改的唯一区别是,不再有不匹配的尾随
End If
。但是流程表中的B18有serverpathNo,在代码开头的任何表中(可能是称为“process”的表,但代码中没有任何东西可以保证)都有空字符串。还是我对范围(“B18”)=“的效果感到困惑?(我现在手头没有方便的Excel副本。)
If data_version < 2.11 Then
Range("A10").Select
Selection.Copy
Range("A17").Select
ActiveSheet.Paste
ActiveCell.FormulaR1C1 = "Resume Path Information"
Range("A12:B12").Select
Selection.Copy
Range("A18").Select
ActiveSheet.Paste
ActiveCell.FormulaR1C1 = "Server Path:"
Range("B18") = ""
Dim formula As String
Dim cu_row As Integer
cu_row = 5
Do
'Fix cell to add resume server path
If Len(Trim(Worksheets("People").Cells(cu_row, ResumeFile).Value)) > 0 Then
formula = "=Process!B$18 & """ & Right(Worksheets("People").Cells(cu_row, ResumeFile).Value, Len(Worksheets("People").Cells(cu_row, ResumeFile).Value) - 2) & """"
Worksheets("People").Cells(cu_row, ResumeFile).formula = formula
'Else be sure it is blank
Else
Worksheets("People").Cells(cu_row, ResumeFile).ClearContents
End If
cu_row = cu_row + 1
Loop Until Worksheets("People").Cells(cu_row, 1) = ""
Range("A1").Select
End If