嗨,我正在对大量数据进行排序,总共大约 340,000 行。最终,几乎每一行都会以某种方式进行按摩。我在第 1 步时遇到问题,对数据进行排序。
我将手动将数据分离到不同的工作表中。然后我将运行一个宏,会发生以下情况: 提示将询问用户要搜索什么,即。“TEXT”,然后询问用户在哪个列中搜索,即。“H”。然后,宏会将符合上述要求的整行复制到新工作簿中,并自动将工作簿另存为 .csv 文件,提示用户输入名称。新工作簿可能有数百个匹配项,因此它必须将行附加到下一行。当然,我是新手,我使用过其他人的代码和我自己的一些代码。
下面的代码很接近。我有以下问题:
我不知道如何手动输入返回 sheetX 以继续搜索。我希望这是当前工作表或使用当前已注释掉的用户提示。
我可以让它移动到一个新的工作表,但如上所述希望它成为一个新的工作簿。
谢谢你!
    Public strData2 As String
    Public strSearchSheet As String
    Public strRange2 As String
Sub NewSearch()
'User Prompt box to enter IO driver type
 strData2 = InputBox(Prompt:="Enter IO Driver type you wish to search.  (IE GE9).", _
       Title:="ENTER TYPE", Default:="Type here")
 'strSearchSheet = InputBox(Prompt:="Enter Sheet name to search.  (IE AI).", _
      Title:="ENTER TYPE", Default:="Type here")
 'User Prompt box to enter Column to search
 strRange2 = InputBox(Prompt:="Enter Column you wish to search.  (IE E).", _
       Title:="ENTER TYPE", Default:="Type here")
  Dim LSearchRow As Integer
  Dim LCopyToRow As Integer
  'On Error GoTo Err_Execute
  'Start search in row 1
  LSearchRow = 1
  'Start copying data to row 2 in Sheet2 (row counter variable)
  LCopyToRow = 2
  While Len(Range("A" & CStr(LSearchRow)).Value) > 0
   'If value in column  = "TEXT", copy entire row to Sheet2
   If Range(strRange2 & CStr(LSearchRow)).Value = strData2 Then
     'Select row in Sheet1 to copy
     Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
     Selection.Copy
     'Paste row into Sheet2 in next row
     Sheets("Test").Select
     Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select
     ActiveSheet.Paste
     'Move counter to next row
     LCopyToRow = LCopyToRow + 1
     'Go back to Sheet1 to continue searching
     Sheets("AO").Select
  End If
  LSearchRow = LSearchRow + 1
       Wend
      'Position on cell A3
       Application.CutCopyMode = False
       Range("A3").Select
       MsgBox "All matching data has been copied."
       Exit Sub
   Err_Execute:
    MsgBox "An error occurred."
    End Sub