我目前映射列名在Excel中的变量,然后用我的公式,新行的变量,这里有一个例子例子;映射Excel列用VBA
Dim posType as String
Cells.Find(What:="PositionType", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
posType = ActiveCell.EntireColumn.Address(False, False)
posType = Left(posType, InStr(1, posType, ":") - 1)
Sheets("sheet1").Range("A1").Select
ActiveCell.End(xlToRight).Select
ActiveCell.Offset(0, 1).Select
Selection.FormulaR1C1 = "PTH Size"
' PTH SIZE
Cells.Find(What:="PTH SIZE", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
ActiveCell.Offset(1, 0).Select
Selection.Formula = _
"=IF(" & posType & "2=""PTH""," & settlementDateQuantity & "2,0)"
pthSize = ActiveCell.EntireColumn.Address(False, False)
pthSize = Left(pthSize, InStr(1, pthSize, ":") - 1)
r = ActiveCell.Row
With Worksheets("sheet1").Range(pthSize & r)
.AutoFill Destination:=Range(pthSize & r & ":" & pthSize & lastrow&)
End With
文件我输入可以从一天他们列的顺序改为一天,但他们allays使用相同的名称,目前我使用的查找方法来获取列然后保存信为字符串,并用我的公式中的参考,但是使用查找和映射100列的过程相当缓慢......
我一直在试图想出一个更好的方法来做到这一点,但不能想更快的话,任何人都可以帮助我通过建议一个可能更快的方式来做到这一点?
我也在考虑跨到EXCEL DNA移动我的项目,没有人知道它会快多少让我的宏运行?
感谢
你设置'应用.ScreenUpdating'为false,然后再开始绘制映射?这样做可以真正加快速度。除此之外,我没有任何建议,但:-( – Treb
是的和计算是关闭:(谢谢无论如何。 – EmberZ
是列总是在连续的范围内像A:D,而不是A:D和G:我?如果是这样,你可以大概把范围转换成字典和搜索来代替。 – Zaider