虽然我用Excel公式调味,但我完全是VBA的新手。我正在担任临床管理职位,我将在明年年初离职,并且我希望将一些事情放在一个状况,在这种状况下,那些有信息素养的同事可以继续使用我所做的一些事情。使用单元格值来定义要选择多少个列
我们面临的主要问题是,当我们从临床软件中提取数据时,默认情况下只会吐出患者ID,姓名,地址,DOB等。如果我们要求软件提供任何其他详细信息,如各种疾病的诊断日期,它将这些数据放在患者左侧的新列中,这显然使得不可能进行查找。我使用的当前宏基本上选择导出数据的前3或4列,然后将它们剪切/粘贴到电子表格的最右侧部分,然后将患者ID复制到单独的表中,其中vlookup执行其操作并填充桌子。
我在寻找的是一种创建模板的方法,其中一个用途可以指定将会有多少这些“额外”列,可能使用下拉列表,所以宏可以很容易地调整为新的数据集。我已经搜索过,但我没有找到任何合适的东西。
这里的代码目前选择数据和移动它的位:
Sheets("Exported Data").Select
Columns("A:E").Select
Selection.Cut
ActiveWindow.ScrollColumn = 2
Columns("N:N").Select
Selection.Insert Shift:=xlToRight
ActiveWindow.ScrollColumn = 1
Columns("A:A").EntireColumn.AutoFit
Range("A2").Select
ActiveWorkbook.Worksheets("Exported Data").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Exported Data").Sort.SortFields.Add Key:=Range(_
"A2:A1285"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Exported Data").Sort
.SetRange Range("A1:M1285")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
谢谢你,这绝对简化了事情!仍然需要弄清楚我将如何设置一个模板,该模板将自动创建具有此公式的列。我的角色分为IT和管理工作,所以在我有机会正确地修改它之前可能会有一段时间,但谢谢。 – NotoriousVBA 2014-09-05 08:54:01