关于请问:想用VBA把EXCEL数据从别的表中复制到另张表中,不知如何实现,请指教,多谢。
1表示还有两个问题以后再请教。请不要用字典法。的问题
其实你提出的这个问题,用函数就可以解决。涉及跨表存取数据,打开表执行查找后再关闭,程序的运行效率不高。
下面的代码实际就是用函数执行查找,然后处理成数值,感觉可能要快一点。
引用各科成绩的数据原理和引用考场号是一样的,只要修改代码中公式的内容就好了,
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。