Tag: vba

excel vba – 在电子表格上查询

如果我有这两个表: 是否有某种Excel VBA代码(使用ADO),可以实现这些所需的结果,可以利用我在SQL表中的任何查询?

检查vba中的“#N / A”值到一个范围内

我想检查一个#N/A值与VBA的excel。 所以经过一番研究,我做了这个代码: Set MyTab = Range(name) If (Not IsEmpty(MyTab.value)) And (MyTab(i, j).value <> CVErr(xlErrNA)) Then Call BuildRequest(False, id, MyTab, i, j) End If 但是当它通过MyTab(i, j).value <> CVErr(xlErrNA)我有一个错误13(type error) ,我不明白为什么。 任何人都可以帮我吗?

将variables数组转换为范围 – VBA excel错误1004

我使用Excel的VBA为了保存数据到一个数组: Dim allPosts As Variant allPosts = Range("A2:J5000") 之后,我正在更改allPosts数组中的数据,然后我想通过以下方法将其粘贴回来: Range("A2:J5000").Value = allPosts 我收到错误: 运行时错误1004应用程序定义的或对象定义的 和复制停止在一个特定的单元格,当我改变在这个单元格的string是更短的问题得到解决。 谢谢

VBA中是否存在+ =运算符?

我试图在一个单元格中的值,但尽pipe文档说Visual Basic允许+ =运算符,它只是给我“编译错误:预期:expression式”。 Range("CellName").Value += 1 是什么突破,但如果我这样做 Range("CellName") = Range("CellName") + 1 它工作正常

在Excel VBA中将string转换为hex

我需要在我的Excel VBAmacros中将string转换为hex。 我试过了: Dim val As String val = "10" Dim hexVal As Integer hexVal = Convert.ToInt32(val, 16) 但Convert.ToInt32(val, 16)不起作用,我猜是因为它不是VB.NET? 无论如何,我可以使用CInt(val)将string转换为整数,但如果我有hex值的string表示,例如“3366CC”,我如何将其转换为hex,以便我可以执行hex计算呢?

在Excel VBA中将对象作为parameter passing

如何在Excel VBA中将对象传递给专用子对象作为引用? 以下是我正在做的事情: Sub main() Dim r As Range Set r = Sheets("Sheet1").Range(Cells(1, 1), Cells(27, 27)) r.Select 'this works select_cells (r) 'this doesn't work End Sub Private Sub select_cells(a As Range) a.Select 'prompts Object Required error End Sub

删除工作表后,VBA全局variables不再声明

我有一些公开的工作表variables,当工作簿打开时,首先进行初始化。 我有一个button,基本上这样做: Dim Response As Variant Response = MsgBox("Are you sure you want to delete this worksheet?", vbYesNo + vbExclamation, "Confirm Action") If Response = vbNo Then GoTo exit sub End If 'Save workbook prior to deletion as a precaution ThisWorkbook.Save ActiveSheet.Delete 出于某种原因,运行后,这些工作表variables不再声明,我必须每次重新初始化它们。 我尝试添加我的InitVariablesmacros调用.Delete后,它仍然无法正常工作。 任何理由为什么这可能会发生?

从VBA中的完整文件名提取path

我新的VBA和下面是我的代码不工作,你可以帮助任何一个? Dim nPath1() As String nPath1() = Split(nPath, "\") 'Declare path as integer Dim path As Integer 'Getting array length path = UBound(nPath1()) Dim lastname As String 'For Loop For i = 0 To path-1 lastname += nPath1(i)+"\" Next i 上面的代码不工作; 我的pathstring是根\ zTrash – 不再需要\ NOC \ NOC ,我想要的是根\ zTrash – 不再需要\ NOC 。

免费的VB6 / VBA分析器和最佳的Excel实践

我们有很多通过VBA和Excel生成的报告。 只有一小部分的报告是实际的计算 – 大部分工作是sql调用和单元格的格式化/写入。 其中最长的时间需要几个小时,大多数需要大约20-30分钟。 VBA / Excel代码插入VB6桌面应用程序使用的dll – 在这里所有的SQL调用。 虽然我确信这里有改进的空间,但这不是我所关心的 – 桌面应用程序相当快速。 两个VBA函数被大量使用:它们被称为GetRange和SetupCell,它们几乎总是一起出现。 GetRange函数是Excel.Range对象的包装器。 它需要一张表,并且范围的范围有4个值。 它的主要用途是挑选单元格进行编辑。 似乎没有太多的机会,但这是最好的方法吗? 它的合作伙伴是SetupCell。 这需要一个Excel.Range对象,文本和关于单元格的十几个参数(字体,边框等)。 大多数这些参数是可选的布尔值,但是再一次,这看起来非常浪费。 其中一些可以追授,但有些依赖于包含在单元格中的值。 这些函数中包含了相当多的代码,主要是如果声明和工作不会感激我发布它。 我想我有两个问题: 有没有更好的方法,是什么 , 是否有免费的分析器,我可以用来看看是否大部分时间在这里或在DLL中?

使用Excel进行数据提取

我每月会收到100+的excel电子表格,我需要一个固定的范围,并粘贴到其他电子表格中来做报告。 我试图写一个VBA脚本来迭代我的Excel文件,并复制范围在一个电子表格,但我还没有能够做到这一点。 是否有捷径可寻?