簡體   English   中英

在Excel中跨工作表排序

[英]sorting across sheets in excel

我不知道這是否可行。

我有一個工作簿,其中有兩頁,“輸入”和“輸出”

user1填寫“輸入表”

列A =名稱
B欄=年齡
C欄=位置
D列=高
..
..

然后在“輸出”頁面上,將列A設置為從“輸入”頁面上的列A復制值,User2使用user1輸入的值填寫更多詳細信息

B欄=眼睛顏色
C欄=頭發顏色
D列=手指數
..
..

因此,我希望您能理解,User1輸入一些詳細信息,然后User2進行一些處理,然后在“輸出工作表”中輸入更多詳細信息。其中A列是將兩者鏈接在一起的“索引”值。

我的問題是,如果User2在此處輸入詳細信息,然后返回到“輸入”表並執行排序,則“輸出”表中的值將不再匹配,因為列A將具有更改以反映排序操作其余的將保持不變。

是否可以鏈接工作表之間的行,或創建將在兩個工作表之間運行並保持其一致性的排序代碼。

對於用戶嘗試的臨時搜索,這不必工作,我只想在“輸入”表上放一個按鈕,例如“按名稱排序”,“按位置排序”等

問候

亞倫

如果您可以使用預設的排序,一種解決方案是將工作表A和工作表B的值都映射到工作表C,然后對其進行排序,然后用新的值填充工作表A和B中的值,排序,結果。

Sheet1                   | Sheet 2                           | Sheet 3 (Hidden and named)
                         |                                   | 
Name     Age    etc,     | Eye Colour    Hair colour   etc.  | =Sheet1!A1 ... =Sheet2!A1

然后,您的排序按鈕將調用類似以下內容的子項:

Dim rngSortRange As Range, rngStartCell As Range, rngEndCell As Range
Set rngStartCell = Worksheets("Sheet_3_Name_Goes_Here").Range("A1")
Set rngEndCell = Worksheets("Sheet_3_Name_Goes_Here").Range( _
  rngStartCell.End(xlToRight).Column, _
  rngStartCell.End(xlDown).Row)
Set rngSortRange = Worksheets("Sheet_3_Name_Goes_Here").Range(rngStartCell, rngEndCell)
rngSortRange.Sort Key1:=<Column Number Here>, Order1:=xlAscending, Header:=xlYes
rngSortRange.Range(rngStartCell, _
                    Worksheets("Sheet_3_Name_Goes_Here").Range( _
                     Worksheets("Sheet 1").Range("A1").End(xlToRight).Column, _
                     rngEndCell.Row _
                    ) _
                   ).Copy
Worksheets("Sheet 1").Paste
rngSortRange.Range(Worksheets("Sheet_3_Name_Goes_Here").Range(
                     rngStartCell.Column + Worksheets("Sheet 1").Range("A1").End(xlToRight).Column, _
                     rngStartCell.Row _
                    ), _
                    rngEndCell _
                   ).Copy
Worksheets("Sheet 2").Paste

這可能需要一些工作(例如,之后可能需要重置sheet3,可能需要粘貼值而不是僅粘貼,否則最終將粘貼自引用公式),但是基本思想應該可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM