请教:如何用VBA把数据从一个表
其实你提出的这个问题,用函数就可以解决。涉及跨表存取数据,打开表执行查找后再关闭,程序的运行效率不高。
下面的代码实际就是用函数执行查找,然后处理成数值,感觉可能要快一点。
引用各科成绩的数据原理和引用考场号是一样的,只要修改代码中公式的内容就好了,
Sub 从登分表中导入考场座号数据()
Application。 ScreenUpdating = False
Dim wstTemp As Worksheet, intRow%
For Each wstTemp In ActiveWorkbook。Worksheets
With wstTemp
intRow = 。 [A65536]。E...全部
其实你提出的这个问题,用函数就可以解决。涉及跨表存取数据,打开表执行查找后再关闭,程序的运行效率不高。
下面的代码实际就是用函数执行查找,然后处理成数值,感觉可能要快一点。
引用各科成绩的数据原理和引用考场号是一样的,只要修改代码中公式的内容就好了,
Sub 从登分表中导入考场座号数据()
Application。
ScreenUpdating = False
Dim wstTemp As Worksheet, intRow%
For Each wstTemp In ActiveWorkbook。Worksheets
With wstTemp
intRow = 。
[A65536]。End(xlUp)。Row
If wstTemp。Name Like "*文*" Then
。Range("G3:G" & intRow)。FormulaR1C1 = "=VLOOKUP(RC[-6],[文登分表。
xls]文科登分表!C1:C5,4,0)"
。Range("H3:H" & intRow)。FormulaR1C1 = "=VLOOKUP(RC[-7],[文登分表。xls]文科登分表!C1:C5,5,0)"
。
Range("G3:H" & intRow)。Copy
。Range("G3:H" & intRow)。PasteSpecial xlPasteValues, xlNone, False, False
ElseIf wstTemp。
Name Like "*理*" Then
。Range("G3:G" & intRow)。FormulaR1C1 = "=VLOOKUP(RC[-6],[理登分表。xls]理科登分表!C1:C5,4,0)"
。
Range("H3:H" & intRow)。FormulaR1C1 = "=VLOOKUP(RC[-7],[理登分表。xls]理科登分表!C1:C5,5,0)"
。Range("G3:H" & intRow)。
Copy
。Range("G3:H" & intRow)。PasteSpecial xlPasteValues, xlNone, False, False
End If
End With
Next
Application。
ScreenUpdating = True
End Sub
Sub 清除考场座号数据()
Application。ScreenUpdating = False
Dim wstTemp As Worksheet, intRow%
For Each wstTemp In ActiveWorkbook。
Worksheets
With wstTemp
If wstTemp。Name Like "*文*" Or wstTemp。Name Like "*理*" Then
intRow = 。
[A65536]。End(xlUp)。Row
。Range("G3:H" & intRow)。ClearContents
End If
End With
Next
Application。
ScreenUpdating = True
End Sub。收起