ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1819|回复: 4

[求助] VSTO 里 移植过来的 VBA代码 提示错误,求大神指教,缺了啥?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-1-14 21:25 | 显示全部楼层 |阅读模式
Imports Microsoft.Office.Tools.Ribbon
Imports Excel = Microsoft.Office.Interop.Excel
Public Class 第一个功能区Ribbon
    Private Myfind As String
    '定义要查找的内容变量
    Private DQHang As Integer
    '定义当前光标选中的行变量
    Private DQLie As Integer
    '定义当前光标选中的列变量
    Private UseHang As Integer
    '已经使用的区域的行数
    Private UseLie As Integer
    '已经使用的区域的列数

    Private Sub 第一个功能区Ribbon_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button年级单科名次_Click(ByVal sender As System.Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles Button年级单科名次.Click
        ThisWorkbook.Worksheets("Sheet1").Activate() '激活工作表
        UseHang = ActiveCell.SpecialCells(xlLastCell).Row
        'UseHang =激活工作表的已用行数
        UseLie = ActiveCell.SpecialCells(xlLastCell).Column
        'UseLie = 激活工作表的已用列数
        Myfind = "语文"
        Call ChaZhao()
    End Sub
    Private Sub ChaZhao()
        Dim Rng As Excel.Range
        With ActiveSheet.Range(Cells(1, 1), Cells(UseHang, UseLie))
            Rng = .Find(What:=Myfind, After:=.Cells(.Cells.Count), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
            If Not Rng Is Nothing Then
                Application.Goto(Rng, True)
                MsgBox(Rng.Cells.Row & "hang" & Rng.Cells.Column)
            Else
                MsgBox("没有找到该单元格!""")
            End If
        End With
    End Sub
    '下面
    '部分在该程序中暂时没用到
    '显示第一个任务窗格
    Private Sub ToggleButton1_Click(ByVal sender As System.Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles ToggleButton1.Click
        Globals.ThisAddIn.TaskLGM1.Visible = TryCast(sender, Microsoft.Office.Tools.Ribbon.RibbonToggleButton).Checked
    End Sub
    '显示第二个任务窗格
    Private Sub ToggleButton2_Click(ByVal sender As System.Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles ToggleButton2.Click
        Globals.ThisAddIn.TaskLGM2.Visible = TryCast(sender, Microsoft.Office.Tools.Ribbon.RibbonToggleButton).Checked
    End Sub
End Class
无标题1.jpg
无标题.jpg

TA的精华主题

TA的得分主题

发表于 2015-1-24 08:29 | 显示全部楼层
你需要这样定义

Xlapp =glocals.thisaddin.application
然后引用xlapp.worksheets("Sheet1")
后面对于单元格的引用都需要如此
尽量用with语句
如 with xlapp.worksheets("sheet1")
.cells(1.1)
这种格式
另外vb.net不自带属性
要读单元格的值不能直接像vba一样直接写cells(1,1),要写成cells(1,1).value

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-6-30 13:50 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2015-7-2 13:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
有些常量需要加前缀,比如你图上的xlValues,xlWhole 等,不同常量的前缀都不一样,你可以在view-Object Browser 里面输入 “xlValues” 来查询

TA的精华主题

TA的得分主题

发表于 2015-7-7 12:59 | 显示全部楼层
学习下,还没开始.net的学习。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 22:56 , Processed in 0.045485 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表