[英]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.