ตามคำตอบของ chuff ฉันเขียนแมโครต่อไปนี้ มันเป็นสิ่งที่ chuff อธิบาย - และนอกจากนี้ชื่อ "Dashboard" และ "Data" ของ windows สองและซ่อนองค์ประกอบทั้งหมด (แถบเลื่อน, แท็บแผ่นงาน, ส่วนหัวแถว / คอลัมน์) จากแดชบอร์ด
หากต้องการให้มันทำงานให้ทำดังต่อไปนี้:
- คัดลอกรหัสด้านล่าง
- ใน Excel ไปที่ Visual Basic Editor ( Alt - F11 )
- แทรกโมดูลใหม่โดยคลิกขวาที่โครงการในต้นไม้ด้านซ้ายและเลือก แทรก - & gt; โมดูล (ในกรณีที่คุณต้องการใช้เทคนิคนี้กับเวิร์กบุคอื่น ๆ ให้วางไว้ในเวิร์กบุคแมโครส่วนตัวของคุณแทน)
- วางรหัสในโมดูลใหม่
- หากคุณต้องการให้เปลี่ยนจำนวนคอลัมน์หรือชื่อเรื่องของหน้าต่างทั้งสองโดยเปลี่ยนบรรทัดแรกของรหัสที่ขึ้นต้นด้วย
Const
- ดำเนินการรหัส - สามารถคลิกในขั้นตอนแรกและกด F5 - หรือกลับไปที่ Excel ( Alt - F11 ) และกด Alt - F8 . เลือกมาโครที่นี่และคลิก วิ่ง . (โปรดทราบว่าคุณสามารถกำหนดทางลัดให้กับมันในกล่องโต้ตอบนี้)
นี่คือแมโคร:
Sub SplitWindows()
Const cIntPaneColumns As Integer = 2
Const cStrPaneName As String = "Dashboard"
Const cStrMainName As String = "Data"
Dim i As Integer
Dim wndMain As Window, wndPane As Window
Dim dblOldWidth As Double, dblPaneWidth As Double
Set wndMain = ActiveWindow
If ThisWorkbook.Windows.Count > 1 Then
If MsgBox("Multiple windows for current workbook are already displayed. Do you want to close/rearrange them?", vbYesNo) = vbYes Then
For i = 2 To ThisWorkbook.Windows.Count
ThisWorkbook.Windows(1).Close
Next
Else
Exit Sub
End If
End If
Set wndMain = ActiveWindow
wndMain.WindowState = xlNormal
Set wndPane = wndMain.NewWindow
ActiveWorkbook.Windows.Arrange ArrangeStyle:=xlVertical
dblOldWidth = wndPane.Width
dblPaneWidth = Range("A1").Resize(, cIntPaneColumns).Width
ConfigureWindow wnd:=wndPane, blnShowElements:=False, _
strCaption:=cStrPaneName, dblWidth:=dblPaneWidth, _
dblLeft:=1
ConfigureWindow wnd:=wndMain, blnShowElements:=True, _
strCaption:=cStrMainName, _
dblWidth:=wndMain.Width + (dblOldWidth - dblPaneWidth), _
dblLeft:=dblPaneWidth
With wndMain
.ScrollColumn = cIntPaneColumns + 1
.Activate
.ActiveSheet.Range("A1").Offset(, cIntPaneColumns + 1).Select
If .FreezePanes Then .FreezePanes = False
.FreezePanes = True
End With
End Sub
Private Sub ConfigureWindow(wnd As Window, _
blnShowElements As Boolean, _
strCaption As String, _
dblWidth As Double, _
dblLeft As Double)
With wnd
.Width = dblWidth
.Left = dblLeft
.DisplayHeadings = blnShowElements
.DisplayHorizontalScrollBar = blnShowElements
.DisplayVerticalScrollBar = blnShowElements
.DisplayWorkbookTabs = blnShowElements
.Caption = strCaption
End With
End Sub