Tag: excel vba

Excel VBA:无法定义范围,获取块variables未设置的错误对象

我想在Excel中使用VBA定义一个Range, Sub convertePerc() Dim separador As String Dim linhaInicial, linhaFinal, colunaInicial, colunaFinal, numAnos As Integer Dim origem, destino As Range separador = "DRES(G)" colunaFinal = Sheets(separador).Cells(6, 5).End(xlToRight).Column linhaFinal = 40 numAnos = 10 origem = Sheets(separador).Range(Cells(10, 4), Cells(linhaFinal, colunaFinal)) colunaInicial = CInt(4 + numAnos + 1) colunaFinal = CInt(numAnos + colunaFinal + 1) destino = […]

Excel VBA脚本格式dateMM-DD-YYYY

我需要将两个单元格的值从dd / mm / yyyy转换为mm-dd-yyyy,并将这些值附加到存储过程调用中。 我的代码: Dim dtInicio As String Dim dtFim As String Set stDate = CStr(MWS.Cells(1, "E").Value) Set enDate = CStr(MWS.Cells(2, "E").Value) 上面的代码后,我需要这样的东西: wstring = "exec sp_accessFile '"+stDate+"', '"+enDate +"'

使用Excel VBA隐藏基于单元值的行

好吧…再回到另一个Excel问题。 这一次,我有一个Excel工作簿,其化学和物理特性为800化学品/化合物。 我有另一本有大约200种这样的化学品的工作手册。 在800工作簿中我需要做的只是显示在较小的工作簿中显示的化学物质。 我可以在技术上通过所有800种化学物质,并使用“filter”function来取消我不想要的一切,但显然这将永远存在,而且肯定有更快的方法。 下面我想的是需要发生的事情: 在这两个工作簿中,CAS编号是其中的一个列。 我已将所有要显示的化学品的CAS编号复制到较大的工作簿中的新列中。 我想要做的是有一些基本上这样说的VBA代码:“如果较大的工作簿中的CAS号码等于较小的工作簿中的CAS号码,则显示该化学品。如果不是,则不显示它。 如果这很难理解,那么我很抱歉,这很难说出来。 This is what I started doing: Sub HideRows() BeginRow = 3 EndRow = 802 ChkCol = 3 For RowCnt = BeginRow To EndRow If Cells(RowCnt, ChkCol).Value = "A3" Then Cells(RowCnt, ChkCol).EntireRow.Hidden = True Else Cells(RowCnt, ChkCol).EntireRow.Hidden = False End If Next RowCnt End Sub 我不认为这是正确的。 […]

debugging模式下的公式与不同的值不同

所以我正在写一个excel VBA程序,它将具有特定名称的所有csv文件读入工作簿上的不同表格中。 它正在阅读没有问题的文件。 问题出现在将数据从文件转换到数组中,这意味着要包含目录中所有文件中的所有相关数据。 要读取文件并按行分隔, 我在用: Do Until EOF(1) Line Input #1, LineFromFile lineitems = Split(LineFromFile, Chr(10)) 在模块的下面,当符合该行数据中的特定条件时,我将这些lineitems传递给数据数组。 为了清楚起见,expression式将文件行中的date值与文件名称上的date标记进行比较。 ElseIf (Left(lineitems(Line), 8) = Right(Left(FileTime(FileNum), 6), 2) + "/" + Right(Left(FileTime(FileNum), 4), 2) + "/" + Left(FileTime(FileNum), 2)) Then Proxy = CStr(lineitems(Line)) DataArray(InverterNumber – 1, m(InverterNumber – 1)) = Proxy 正如你所看到的,我已经添加了一个代理步骤来尝试并确保数据通过,但无济于事。 我还添加了一个故障保险,以确保没有空行进入DataArray: If Len(DataArray(InverterNumber – 1, […]

Excel:有没有办法以编程方式更改多列列表框控件中单个单元格的背景颜色

我有一个embedded在Excel中的多列表框控件,有没有办法改变单个单元格的背景,字体和其他属性(而不是改变列表框中的所有文本)? 我不介意使用哪个列表框控件(activeX或其他)。 我也会考虑使用另一个没有绑定到Excel工作表行和列的控件(即我不能使用表格)。

1秒延迟持续近2秒

我正在编写一个代码,将数据从一个电子表格复制到另一个电子表格。 我已经尝试了Application.Wait和睡眠,但他们阻止两个电子表格,所以我决定使用一个做直到循环。 它有效,但1秒持续近2秒,我不知道为什么。 所以我只留下了代码中的循环,但testing给出了相同的结果(大约需要95秒)。 任何build议? 这里是代码: Sub Test() Dim Delay As Date cell = 1 For i = 1 to 60 Workbooks("Data").Worksheets("Sheet1").Range("C" & cell).Value = cell cell = cell +1 Delay = Now() + TimeValue("00:00:01") Do Until Now() >= Delay Do Events Loop Next i End Sub

如何将平面表格转换为2D Excel表格

我有一个“扁平化”的表与国家和Excel年。 例如。 Country Year Value USA 1961 a USA 1962 x USA 1963 g USA 1964 y France 1961 u … 我想有一个二维表如下: 1961 1962 1963 1964 USA axgy France ueha Germany oxnp 你碰巧知道,如何在Excel中使用VBA进行编程。 非常感谢任何提示或build议。

Excelmacros将单元格格式更改为受保护工作表的文本

我有一个要求打开工作表一旦更改受保护的工作表单元格格式为文本(从date)。 我的意思是说价值应该出现在表单中。 我已经将我的代码保存在ThisWorkBook的Workbook_Open()事件中,以及下面给出的步骤顺序。 取消保护工作表: gSampleSheet.Unprotect Password:="MyPassword" 更改单元格格式: gSampleSheet.Range("K1:K100").NumberFormat = "Text" 保护工作表: gSampleSheet.Protect DrawingObjects:=False, contents:=True, Scenarios:=True, Password:="MyPassword" 在单元格中inputdate值时,应将其转换为文本格式,并且该值应按原样显示。 即如果input12/12/15,12.12.15,12-12-15,12-Dec-15,那么它们应该在input时出现(而不是改变成date格式)。 但是单元格显示了一些随机值,如T2015tx或其他值。 请帮我解决这个问题,因为我正在努力寻找根本原因。

Excel中使用一个声明variables在另一个子

我想在这里做的是使用我声明的“vSelection”在另一个小组,但它似乎并没有工作。 也许任何人都可以帮助我? 这是我宣布的地方。 Public Sub cmdBladeren_Click() Dim vSelection As Variant vSelection = Application.GetOpenFilename("Graphics files (*.gif), *.gif") If vSelection = False Then MsgBox "Selecteer een foto!" Exit Sub End If End Sub 这是我想要使用它的地方 Private Sub btnOK_Click() Dim rngRange As Range Dim rngProduct As Range Dim lTop As Long Dim lLeft As Long Dim oShape As Shape […]

设置活动单元closures

我有一个macros分配到一个特定的单元格,启动一个dateselect器日历。 不幸的是,当我的工作簿被closures时,同一个单元在下次打开时仍然是活动单元格。 这会导致下一个用户必须点击另一个单元格,然后再次点击macros的单元格以启动日历。 我期望完成的是一个将使另一个单元格closures或保存工作簿的活动。 这样,当一个人打开工作簿时,他们只需要点击macros的单元格来启动日历。