Tag: 运行时错误

EXCEL VBA运行函数将angular度转换为十进制时出错

目前我正在使用VBA excel创build一个小部件来validation坐标是否位于另一个预定义和预先指定的坐标集的半径之下。 在模块中,我想在计算之前将坐标从度数转换为十进制,因为计算公式只允许坐标的十进制forms。 但是,每次我想要运行macros时,都会出现这个错误(运行时错误“5”,无效的过程调用或参数)。 然后,debuggingbutton会把我带到编码的下面: degrees = Val(Left(Degree_Deg, InStr(1, Degree_Deg, "°") – 1)) 为了您的信息,完整的function如下: Function Convert_Decimal(Degree_Deg As String) As Double 'source: http://support.microsoft.com/kb/213449 Dim degrees As Double Dim minutes As Double Dim seconds As Double Degree_Deg = Replace(Degree_Deg, "~", "°") degrees = Val(Left(Degree_Deg, InStr(1, Degree_Deg, "°") – 1)) minutes = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "°") + 2, […]

excel 2007的方法oleobjects的对象失败

我在一张单独的工作表上设置了一张发票,上面列出了我们销售的所有零件。 我在发票上放置combobox,并将它们链接到validation列表并包含代码,以便当双击框时,键入时将使用validation列表自动完成框。 我还包括代码,以便当这个发票在一天结束时closures,然后重新打开第二天,或者当按下快捷键时,它将清除内容并更改发票号码。 有时我需要保存一张发票,以便稍后添加或更改。 所以我复制该工作表并用客户名称重命名。 这已经工作了一年多了。 但上周,当我点击复制的工作表上的任何单元格,它有一个运行时错误1004对象“_Worksheet”的方法“OLEObjects”失败。 然后combobox不起作用。 但它只能在复制的工作表上执行。 原始工作表正常工作。 有什么build议么? 这里是使用的代码: '========================== Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _ Cancel As Boolean) Dim str As String Dim cboTemp As OLEObject Dim ws As Worksheet Dim wsList As Worksheet Set ws = ActiveSheet Set wsList = Sheets("ValidationLists") Cancel = True Set cboTemp = ws.OLEObjects("Parts") On […]

VBAdebugging工作正常,但运行时出错

我最近一直在为自己定制“网站爬虫”来制作一个网站索引/网站地图,自学自己的VBA。 所以我的代码(完成时)将查看并点击网站上的所有链接。 我能够从主页获得所有链接没有问题,并将其放置在Excel中。 但是,当我尝试从其他页面获取链接时,出现运行时错误,如: “运行时错误'70':权限被拒绝” 要么 “运行时错误'91':对象variables或宽度块未设置” 但是,当我进入debugging模式,并进入代码,我不会遇到任何这些错误。 这很奇怪。 有一点要提到的是,我从一个有很多安全设置(包括互联网限制)的系统访问网站,这就是为什么我有这样一行: CreateObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")而不是Create(internetExplorer)等… 它被困在我的代码下面的For Each tabLinks In ieLink2 。 我已经删除了链接,但希望每个人仍然可以得到这个想法..(请注意,我是新的StackOverflow,所以我不知道这是适当的,像这样发布整个代码,或者如果我应该只发布一块我的代码)。 Public Sub CreateSiteIndex_Click() 'Variables Dim objShell As Object Dim objShellWind As Object Dim ie As Object Dim ieFol As Object Dim ieData As Object Dim ieLink As Object Dim tabData As Object Dim ieLink2 As Object Dim […]

检查带有标题的文件是否为空

我正在写一个VBA代码来检查其他文件是否为空。 这些文件都有标题,所以我想检查“A2”单元格是否为空或长度为零。 我的代码如下,file1,dir1,dirfile1是文件名,目录,path。 我也有一个问题,我是否需要打开该文件才能访问其“A2”单元格。 Private Sub CommandButton2_Click() Dim file1, dir1, dirfile1 As String file1 = "NAMBS." & Range("f3") dir1 = Range("D11") dirfile1 = dir1 & "\" & file1 Range("F14").Clear If Len(Dir(dirfile1)) = 0 Then Range("F14") = "missing" Else Workbooks.Open (dirfile1) If IsEmpty(ThisWorkbook.Sheets(dirfile1).Range("a2")) Then Range("F14") = "empty" End If Workbooks(file1).Close End If End Sub 错误消息是运行时错误“9”:下标超出范围。 基本上,我想访问另一个表中的“A2”单元格,并检查是否为空,然后closures它。

types不匹配错误

如果ws1.cells(i,13)=“是”,那么“该列(列M)包含空白单元格或”是“ 。 我试过重新定义“我”作为string,并没有改变任何东西。 目标是对于列M中的“是”的每一行,将整行复制到名为“输出”的第二张表。 任何有关这个错误的帮助将非常感激,也可能适合我的目标的其他想法。 谢谢! Sub Sadface() Dim ws1 As Worksheet: Set ws1 = ThisWorkbook.Sheets("Trades") Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Sheets("Output") For i = 2 To ws1.Range("M65536").End(xlUp).Row If ws1.Cells(i, 13) = "Yes" Then ws1.Rows(i).Copy ws2.Rows(ws2.Cells(ws2.Rows.Count, 2).End(xlUp).Row + 1) End If Next i End Sub

错误1004:应用程序定义的或对象定义的错误Excel

我有一个在Excel 2010中的子将信息复制到单元格中。 当我尝试运行它时,出现“应用程序定义或对象定义的错误”: With Worksheets("Parameters") .Range(.Cells(line + 3, amountCol), _ .Cells(line + 3, amountCol + 6)).Copy Destination:=amounts End With 这是发生错误的整个子部分。 Dim numLine As Integer Dim line As Integer Dim allocationType As String Dim allocationRow As Integer Dim specialFund As Integer Dim amountCol As Integer Dim numCol As Integer Dim amounts As Range Dim i As […]

Excel VBA添加工作表:“该命令不能用于多个select”

Excel 2010: 为了logging,这段代码已经工作了好几个月。 然而,最近两周,它已经停止了标题中描述的错误。 那段时间我没有修改代码,这使我相信这是改变了的环境。 Sub TableofContents(CurrMonth, CurrYear, Z, Region, RegionName) Sheets.Add(Before:=Worksheets(1)).Name = "1. Table of Contents" '<—- BREAKS HERE Cells.Select With Selection.Font .Name = "Calibri" .Size = 11 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ThemeColor = xlThemeColorLight1 .TintAndShade = 0 .ThemeFont = […]

从Excel写入数据到Word

我想使用Excel来存储列A中的“标签名称”和它们在列B中的相关“replace文本”。当代码运行时,它需要收集每个标签,一次一个(逐行),search整个Word文档中的这些单词,并用相应的replacereplace它们。 我注意到页眉和页脚中的特殊标签没有被replace。 我转向这篇文章( http://word.mvps.org/faqs/customization/ReplaceAnywhere.htm ),发现使用一系列范围(或循环遍历文档中所有可用的故事范围)我能够做到这个。 我改进了我的代码,正如上面的链接所build议的,只要我的代码被embedded到我的“Normal”Word文件中,从而使用Word中的VBA代码在另一个Word文档上进行操作。 但是,目标是使用VBA Excel在读取Excel文件的同时操作replace项。 当我将代码移动到Excel时,我挂起了一个自动化错误, “运行时错误”-2147319779(8002801d)“:自动化错误库未注册”。 我已经从查看registry中find了使用“Word.Application.12”代替“Word.Application”的答案。 我有一个Windows 7,64位机器,与Microsoft Office 2007.我select了以下库: Excel中: Visual Basic的应用程序 Microsoft Excel 12.0对象库 OLE自动化 Microsoft Access 12.0对象库 Microsoft Outlook 12.0对象库 Microsoft Word 12.0对象库 Microsoft Forms 2.0对象库 Microsoft Office 14.0对象库 字: Visual Basic的应用程序 Microsoft Word 12.0对象库 OLE自动化 Microsoft Office 12.0对象库 我在Excel中关于VBA操作没有问题。 通常情况下,我将传递一组string到这个函数,但是现在,我已经在函数内部embedded了string,就好像我只打算交换一个string(对于任意数量的实例),另一个预定的string。 Function Story_Test() Dim File As String […]

读取Java中的excel文件 – 错误

我一直在试图编写一个简单的Java,其中用户可以select一个Excel文件,并让程序吐出文件的string/数字内容。 我已经到了我认为是一个可行的程序,但当我尝试它时,我得到了一个巨大的错误日志。 该计划如下: import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import javax.swing.JFileChooser; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.FormulaEvaluator; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class WriteExcel { public static void main(String[] args) throws IOException { final JFileChooser fc = new JFileChooser(); fc.setCurrentDirectory(new File(System.getProperty("user.home"))); int result = fc.showOpenDialog(fc); File selectedFile = fc.getSelectedFile(); […]

运行时错误5成功计算后

我正在开发一个stream程,根据月度回报数据自动计算3年滚动回报。 这是我的代码产生错误的一部分: Set rolling_returns = Range([c41], [c41].End(xlDown)) start_no_begin = 6 start_no_end = 41 For Each calc In rolling_returns reference_begin = "C" & start_no_begin reference_end = "C" & start_no_end Set calculation1 = Range(reference_begin, reference_end) calc.Offset(0, 3) = ((WorksheetFunction.Product(calculation1)) – 1) ^ (1 / 3) 'why is this getting stopped after a certain amount of calculations?? start_no_begin […]