首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用冻结列?

如何使用冻结列?
EN

Stack Overflow用户
提问于 2013-12-12 20:42:19
回答 1查看 2.9K关注 0票数 1

如何使用冻结.NET中的列。不要在意用什么.Net语言编写代码。我试过:

代码语言:javascript
复制
Public Sub FreezeColumn(ByVal FileName As String, ByVal SheetName As String, ByVal RangeName As String)

    Dim oExcel As Excel.Application = Nothing
        Try
            oExcel = New Excel.Application
            oExcel.Visible = False
            If String.IsNullOrEmpty(RangeName) Then Exit Sub
            oExcel.Workbooks.Open(FileName, False, True)
            oExcel.DisplayAlerts = False

            For Each wsheet As Worksheet In oExcel.ActiveWorkbook.Worksheets
                If wsheet.Name = SheetName Then
                    wsheet.Range(RangeName).Select()
                    oExcel.ActiveWindow.FreezePanes = True
                    Exit For
                End If
            Next

            oExcel.Save()
        Catch ex As Exception
            Throw
        Finally
            If Not IsNothing(oExcel) Then
                If Not IsNothing(oExcel.ActiveWorkbook) Then
                    oExcel.ActiveWorkbook.Close(SaveChanges:=True)
                    ProcessHandler.ExcelDispose(oExcel)
                    oExcel = Nothing
                End If
            End If
        End Try
End Sub
EN

回答 1

Stack Overflow用户

发布于 2013-12-12 20:54:29

在冻结窗格之前,您需要激活工作表。

添加

代码语言:javascript
复制
wsheet.Activate

在此之前

代码语言:javascript
复制
wsheet.Range(RangeName).Select()

参见此测试示例

代码语言:javascript
复制
Imports Excel = Microsoft.Office.Interop.Excel

Public Class Form1   
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _ 
    Handles Button1.Click
        Dim oExcel As New Excel.Application

        oExcel.Visible = True

        oExcel.Workbooks.Open("C:\book1.xls", False, True)
        oExcel.DisplayAlerts = False

        For Each wsheet As Excel.Worksheet In oExcel.ActiveWorkbook.Worksheets
            If wsheet.Name = "Sheet1" Then
                wsheet.Activate()
                wsheet.Range("A1").Select()
                oExcel.ActiveWindow.FreezePanes = True
                Exit For
            End If
        Next
    End Sub
End Class
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20553811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档