Tag: excel vba

禁止“另存为”提示

我看了这个话题,发现了一些帮助,但build议似乎并没有工作。 我正在打开一个CSV文件到EXCEL中进行一些更改,然后想要将结果保存回相同的文件名和CSV格式。 我想这样做没有提示,我正在确保我想保存该文件。 我们正在使用一个macros启用Excel文件来导入数据进行更改,然后保存。 整个过程由一个batch file启动,这个batch file将会在一段时间内打开Excel应用程序和指定的文件,这就是为什么我们不希望提示停止进程。 这里是我在VBA中使用的代码来完成这项工作,以及我发现的其他潜艇,以帮助我压制提示。 此代码位于文件的TheWorkbook中,而不是模块。 我错过了什么吗? 码 Sub fixfile() Const strFileName = "W:\Webshare\Documents Acquired in 2017\Jim Excel\snr-room-schedule.csv" Dim wbkS As Workbook Dim wshS As Worksheet Dim wshT As Worksheet Set wshT = Worksheets.Add(After:=Worksheets(Worksheets.Count)) Set wbkS = Workbooks.Open(Filename:=strFileName) Set wshS = wbkS.Worksheets(1) wshS.UsedRange.Copy Destination:=wshT.Range("A1") wbkS.Close SaveChanges:=False 'This is the area of work […]

返回所选单元格的背景颜色

我有一个电子表格,其中的细胞有意义地着色。 有没有人知道我可以返回当前单元格的Excel工作表的背景颜色值?

屏幕更新的效果

我一直在玩围绕测量代码执行时间来衡量执行我的脚本本地和我的服务器之间的差异。 有一次,我忘了禁用screen updating ,并感谢我对闪光灯不敏感之前,更详细地考虑它: 当我第一次开始使用VBA我总是认为它只是被使用,所以它不会吓着最终用户认为自己的电脑即将崩溃。 当我开始更多地阅读提高代码的效率时,我明白了这是什么原因,但screen updating对于代码执行时间有多大影响?

Excel VBA仅复制粘贴值(xlPasteValues)

我试图将sheetA中的整个列复制到SheetB中。sheetA列具有用formuls形成的值。 我只使用xlPasteValues复制SheetA列值。 但它不会将值粘贴到另一个sheetB。 sheetB中的列是空的。 我的VBA代码 Public Sub CopyrangeA() Dim firstrowDB As Long, lastrow As Long Dim arr1, arr2, i As Integer firstrowDB = 1 arr1 = Array("BJ", "BK") arr2 = Array("A", "B") For i = LBound(arr1) To UBound(arr1) With Sheets("SheetA") lastrow = Application.Max(3, .Cells(.Rows.Count, arr1(i)).End(xlUp).Row) .Range(.Cells(1, arr1(i)), .Cells(lastrow, arr1(i))).Copy Sheets("SheetB").Range(arr2(i) & firstrowDB).PasteSpecial xlPasteValues End With […]

如何改变命名范围的范围

当我通过名称pipe理器创build一个命名范围时,我可以select指定工作簿或[worksheet name]作用域。 但如果想要更改范围,则下拉列表会灰显。 有没有办法,在名称pipe理器,或者,最好是VBA来改变现有的命名范围的范围? 例如: testName引用'sheet1'!A1:B2 testName 'sheet1'!A1:B2与范围工作簿。 我将如何改变 testName引用'sheet1'!A1:B2 testName '作用域?

编译器错误:未定义用户定义的types

我在这一行上得到编译时错误“用户定义types未定义”: Dim cn As ADODB.Connection 什么可能是错的? 码: Sub test() Dim cn As ADODB.Connection 'Not the best way to get the name, just convenient for notes strFile = Workbooks(1).FullName strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";" Set cn = CreateObject("ADODB.Connection") 'For this to work, you must create a DSN and use the name […]

在Excel 2013 VBA中引用命名单元格的正确方法是什么? (我知道我搞砸了)

我有一个单元格(好吧,有一堆,但我只是看着一个)名为“类”。 这是Excel的网格符号“C10”。 当我引用单元格时,我的代码完美工作 Range("C10") = "Value" 但是当我使用 Classes = "Value" 它什么都不做。 那么,通过名称引用一个命名单元格的正确方法是什么?

如何使用VBA设置Excel单元格的背景颜色?

作为VBA程序的一部分,我必须根据它们的值(基本上是一个健康监视器,绿色是好的,黄色是边界和红色是危险的),将某些单元格的背景颜色设置为绿色,黄色或红色。 我知道如何设置这些单元格的值,但是如何设置背景颜色。

是一个stringVBA中的数组,可以通过迭代?

在VBA中是一个string数组? 例如,我可以像在C / C ++中一样遍历它吗? 做这样的事情: char myArray[10]; for (int i = 0; i < length; i++) { cout << myArray[i]; } 在VBA中相当于什么? 这不是我所期望的。 从来没有真正尝试在VBA之前操纵很多string! 🙂

展开每个列单元格的列单元格

我有3组不同的数据(不同的列) A栏动物(5种) B栏的水果(1000种) C栏中的国家(10种) 有了这3个数据集合,我想得到5×1000×10共计50k对应的元素在列。 EFG(与每个水果和每个国家对应的每个动物)。 可以通过手动复制和粘贴值来完成,但这需要很长时间。 有什么办法通过VBA代码或自动化它吗? 有没有像上面介绍的无限数据集的通用公式? 请让我知道,如果有什么不清楚。 这里是一个较小的数据例子,结果应该如何变化: