在Excel中定义了行数和列数

我可以在Excel中制作工作簿并指定行数和列数吗? 例如20行和5列? 我正在一个电子表格,将始终具有相同数量的行和列,我想禁用滚动到无限选项。

更好的Excel工作表格式具有固定的工作表大小(1,048,576行16,384列),您需要执行以下其中一个技巧:

  • 限制在Excel中禁用滚动的行数和列数
  • 限制隐藏行和列的行数和列数

在那里你有一个链接 ,他们清楚地解释了图像和所有步骤所需的方法。

下面的代码隐藏了额外的行和列,并限制了单元格的select/移动

(只需更新Module1中的MAX_COL和MAX_ROW常量)


ThisWorkbook模块中的代码:


Option Explicit Public Sub MinimizeAllSheets() Dim ws As Worksheet Application.ScreenUpdating = False For Each ws In ThisWorkbook.Worksheets MinimizeSheet ws Next Application.ScreenUpdating = True End Sub Private Sub Workbook_Open() MinimizeAllSheets End Sub 'If ScrollArea is not set Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) RestrictMovement Target End Sub 

Module1中的代码(通用模块):


 Option Explicit Private Const MAX_COL = 5 'Update default limits (all sheets) Private Const MAX_ROW = 20 Public Sub MinimizeSheet(Optional ByRef ws As Worksheet, _ Optional ByVal maxCol As Long = MAX_COL, _ Optional ByVal maxRow As Long = MAX_ROW) If maxCol > 0 And maxRow > 0 Then Dim actWs As Worksheet If ws Is Nothing Then Set ws = ActiveSheet Else If ws.Name <> ActiveSheet.Name Then Set actWs = ActiveSheet ws.Activate End If End If ActiveWindow.ScrollColumn = 1 ActiveWindow.ScrollRow = 1 With ws.Range(ws.Cells(1, maxCol + 1), ws.Cells(1, Columns.Count)) .EntireColumn.Hidden = True End With ws.Rows(maxRow + 1 & ":" & Rows.Count).EntireRow.Hidden = True 'ScrollArea also limits the selection ws.ScrollArea = ws.Range(ws.Cells(1), ws.Cells(maxRow, maxCol)).Address If Not actWs Is Nothing Then actWs.Activate End If End Sub 

 Public Sub RestrictMovement(ByVal Target As Range) 'If ScrollArea is not set With Target If .CountLarge = 1 Then If .Column > MAX_COL Then .Parent.Cells(.Row, MAX_COL).Activate If .Row > MAX_ROW Then .Parent.Cells(MAX_ROW, .Column).Activate Else If (.Column - 1) + .Columns.Count > MAX_COL Then Set Target = .Resize(.Rows.Count, MAX_COL) End If If (.Row - 1) + .Rows.Count > MAX_ROW Then Set Target = .Resize(MAX_ROW, .Columns.Count) End If End If End With End Sub