-1

我是 excel 新手,这可能是一个初学者问题,所以请多多包涵,我正在尝试执行以下操作:如果我在 excel 表中有一些数据,如下所示 -

-- 运行情况:03_mileage.cry ......
结果:OK
-- 运行情况:07_option mode.cry ......
结果:OK
-- 运行情况:10_80 columns.cry ......
结果:OK
- 运行案例:11_Split tag.cry ......
结果:OK
- 运行案例:12_TQC.cry ......
结果:ERROR

我想要的是将它移动到另一张纸上,其中一列中的案例和相应列中的结果。我更喜欢使用 excel 公式而不是 VB。
谢谢, 阿比纳亚

4

1 回答 1

0

如果您的第一张工作表 (Sheet1) 如下所示:

A1:  -- Running case : 03_mileage.cry ......
A2:  Result : OK
A3:  -- Running case : 07_option mode.cry ......
A4:  Result : OK
A5:  -- Running case : 10_80 columns.cry ......
A6:  Result : OK
A7:  -- Running case : 11_Split tag.cry ......
A8:  Result : OK
A9:  -- Running case : 12_TQC.cry ......
A10: Result : ERROR

然后,在新的电子表格上(在同一个工作簿中),您可以像这样引用另一个工作表的范围:

A1: =Sheet1!A1          B1: =Sheet1!A2
A2: =Sheet1!A3          B2: =Sheet1!A4
A3: =Sheet1!A5          B3: =Sheet1!A6
A4: =Sheet1!A7          B4: =Sheet1!A8
A5: =Sheet1!A9          B5: =Sheet1!A10

就这样……


或者,如果您的第一张工作表中有大量数据,您可以使用VBA来完成这项工作。

Option Explicit

Sub CaseDesc()
    Application.ScreenUpdating = False
    Dim ws1 As Worksheet, ws2 As Worksheet, lr&, i&, nxt&
    Set ws1 = ThisWorkbook.Sheets("Sheet1")
    Set ws2 = ThisWorkbook.Sheets("Sheet2")
    lr = ws1.Range("A" & Rows.Count).End(xlUp).Row
    nxt = 1
    ' if you have headers change 1 to 2 ( or row where your data starts)
    For i = 1 To lr
        If i Mod 2 Then
            ws2.Range("A" & ws2.Range("A" & Rows.Count).End(xlUp).Row + 1).Value = ws1.Range("A" & i).Value
        Else
            ws2.Range("B" & ws2.Range("B" & Rows.Count).End(xlUp).Row + 1).Value = ws1.Range("A" & i).Value
        End If
    Next i
    Application.ScreenUpdating = True
End Sub
于 2013-04-18T07:21:20.377 回答