我有一个不寻常的问题。我有一个电子表格,里面装满了A:J列的数据。我想添加另一个列K,并用Staff名称填充它。这个想法是为每个工作人员分配电子表格。分配的编号已在另一个工作表中计算,并在此电子表格中的M和N列中引用.M2和向下包含人员名称,N2和向下包含其相应的分配。
我的问题是弄清楚如何用这些数据填充K列。例如,APerson(M2)的分配为23(N2),我想用APerson的名称将K2(第1行作为标题)填充到K24。在那之后,我想分配APerson2(M3)和15(N3),然后从K25开始。我有一种感觉它会涉及循环,但我的VBA知识是不完整的,环顾四周我只能找到填充增量数字的循环。
编辑:不附加任何文件的道歉;这最初是通过我的手机发布的,因为我的工作阻止了stackoverflow。我打印了我正在进行中的代码,所以我会尽快输入它。
编辑2:到目前为止,这是我的代码。我有分配工作 - 有点。
Sub Allocate()
name1 = Range("M2").Value
countto = Range("N2").Value
Range("K1").Select
Do
ActiveCell.Offset(1, 0).Select
Loop Until IsEmpty(ActiveCell.Value)
For Counter = 1 To countto
ActiveCell.Value = name1
ActiveCell.Offset(1, 0).Select
Next Counter
name2 = Range("M3").Value
countto2 = Range("N3").Value
Range("K1").Select
Do
ActiveCell.Offset(1, 0).Select
Loop Until IsEmpty(ActiveCell.Value)
For Counter2 = 1 To countto2
ActiveCell.Value = name2
ActiveCell.Offset(1, 0).Select
Next Counter2
End Sub
有没有办法让这个为大量(20多名)员工自动分配'name1','name2'等等,而无需手动输入所有内容,或任何有关如何提高效率的提示?
答案 0 :(得分:1)
我看到你对VB有一些基本的了解,而且我有点生疏,这是一个繁忙的工作,直到有人给你一个更好的答案。它假设在源表上,theree在每行上是一个不同的名称,然后是一个空行。
enter code here
Sub Allocate()
i3 = 2 'counter for DESTINATION sheet
i1 = 2 'counter for SOURCE sheet
Do until sheets(source).cells(i1, N#).value = "" 'until the last name
NAME = sheets(source).cells(i1, N#).value 'N#: column NUMBER containing names
ENTRIES = Sheets(Source).cells(i1, C#).value 'C#: column NUMBER containing numbers
For i2 = 1 to ENTRIES
Sheets(Dest).ceklls(i3, 11).value = NAME '11 is column K
i3 = i3 + 1
Next
i1 = i1 + 1
Loop