我正在尝试编写代码,根据列标题将数据从一个工作表复制到另一个工作表:
Sub Copy Headers()
Dim header As Range, headers As Range
Set headers = Worksheets("WS1").Range("A1:AX1")
For Each header In headers
If GetHeaderColumn(header.Value) > 0 Then
Range(header.Offset(1,0), header.End(xlDown)).Copy Destination:=Worksheets("WS2").Cells(2, GetHeaderColumn(header.Value))
End If
Next
End Sub
Function GetHeaderColumn(header As String) As Integer
Dim headers As Range
Set headers = Worksheets("WS2").Range("A1:AX1")
GetHeaderColumn = IIf (IsNumeric(Application.Match(header,headers, 0)), Application.Match(header, headers, 0), 0)
End Function
此代码几乎适用于所有列,但它不适用于具有列标题Faculty
的一列,并且填充了名称,而不是数字。
我的代码是否因包含IsNumeric
而限制太多,或代码是否存在其他问题?