Tag: 基本

为什么excel没有隐藏我的形状?

我在下面使用这个代码… Declare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long) Sub blink() Sleep 500 ActiveSheet.Shapes("the_shape").Visible = False Sleep 500 ActiveSheet.Shapes("the_shape").Visible = True End Sub 我错过了什么?

excel / VBA将一个sheetname传递给一个函数

我有几张纸,需要一次特定的单元格(A1)等于“1”,一旦改变它们的值,标签颜色变成绿色。 我在ThisWorkBook中声明了以下函数: Public Function ColorLabel(LabelName) Set Foglio = Sheets(LabelName) Set Target = Foglio.Range("A1") If Target = "1" Then Foglio.Tab.ColorIndex = 4 Else Foglio.Tab.ColorIndex = xlNone end if End Function 所以,在每一张我定义下面的代码 Private function Worksheet_Change(ByVal Target As Range) ColorLabel(ActiveSheet.CodeName) end function 但我得到以下错误 编译错误。 预期的variables或例程,而不是forms 怎么了? 谁来帮帮我? 谢谢!

VBA:函数给出“运行时错误'424':所需的对象”调用时出错

我有两个主要function,第一个是search_bank。 它会逐个单元格地searchCredits,Type和Store列,并判断是否匹配。如果匹配,则返回True,并且副作用会改变匹配单元格的颜色。 我用来testing第一个函数的第二个子 。 我遇到的问题是我得到运行时错误'424':所需的对象 ,没有迹象表明问题是在哪里。 这是第一个function: Function search_bank(Store As String, amount As Double, Amex As Boolean) As Boolean Dim m_store As Range Dim m_type As Range Dim Credit_Amt_Col As Range Set m_store = bank_sheet.Range("1:1").Find("M_STORE") Set m_type = bank_sheet.Range("1:1").Find("M_TYPE") Set Credit_Amt_Col = bank_sheet.Range("1:1").Find("Credit Amt") search_bank = False Dim i As Long For i = 1 […]

VBA:如果使用Option Explicit在函数中定义variables的问题

我有以下问题: Option Explicit被使用。 代码 Function myFun( myVar as Double) as double myVar = myVar + 1 end function 抛出myVar未定义的错误 但是,如果我将Dim myVar as Double添加Dim myVar as Double则表示variables被声明了两次。 我究竟做错了什么? 谢谢

Visual Basic:运行时错误“9”:“下标超出范围”

我正在尝试创build一个脚本,可以删除数字列表中的重复项。 唯一的问题,是我不断得到下Subscript out of range (Error 9) 。 Sub remDupes() Dim units() As Variant For i = 2 To 37 Dim var As String If ((Not Not units) = 0) Then For x = 0 To 36 var = Cells(i, 22).Value If (units(x) = var) Then Range("V" & i, "AA" & i).Value = "" Else […]

types不匹配错误,在Excel VBA中声明范围variables

这应该是一个简单的解决方法,但我已经search和search,不知道什么是错的。 我得到一个“运行时错误13:types不匹配”: Dim rng As Range Dim endRW As Integer, endCol As Integer endRW = 30 endCol = 10 Set rng = Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2,3),Sheets("Sheet1").Cells(endRW,endCol)) ^^^最后一行是导致错误^^^^

VBA师按

在我的VBA计算器中,我用0除了问题。 我怎样才能得到它显示一个MsgBox "U can't divise by 0"当我尝试除以0 ? 有我的“=”和“/”代码: 'equals button Private Sub Wynik_Click() 'równa się var2 = TextBox1.Value xWynik = Application.Evaluate(var1 & var2) TextBox1.Value = xWynik End Sub 'division Private Sub Dziel_click() If var2 = "0" Then MsgBox ("Nie można dzielić przez 0") Else var1 = TextBox1.Value + "/" TextBox1.Value = "" End If […]

使用Visual Basic for Applications的正则expression式错误

使用http://www.regexr.com/模式\"([\s\S]*?)\"可以匹配我的目标string。 然而,在我的代码中,我得到一个types不匹配,不知道为什么,IDE改变了string格式在引号 Dim Matches Dim objectRegularExp As RegExp If Application.FileDialog(msoFileDialogOpen).Show <> -1 Then Exit Sub FileName = Application.FileDialog(msoFileDialogOpen).SelectedItems(1) Open FileName For Input As #1 yourText = Input(LOF(1), #1) Close #1 LengthOfFile = Len(yourText) 'create regular expression Set objectRegularExp = New RegExp With objectRegularExp .Pattern = "" \ "(\s\S*?)\""" <type mismatch runtime error .Global = True […]

Excel VBA数组不从循环填充

这是代码。 我想要做的是创build一个数组包含一个string(名为“困难string”)的所有索引位置存在一些空格(string看起来像“文本文本文本…”): Dim cutarray cutarray = Array(0) For spacething = 2 To Len(difficultstring) If Mid(difficultstring, spacething, 1) = " " And Mid(difficultstring, spacething – 1, 1) <> " " Then ReDim cutarray(UBound(cutarray) + 1) cutarray(UBound(cutarray)) = spacething End If Next spacething 但是由于某种原因,当我尝试使用cutarray数组来做一些事情,或者从cutarray中显示值时,看起来好像没有任何数字。 我检查了len(cutstring),它返回值43 – 这意味着Excel试图填充这个string,但实际上没有数字填充(当我拉cuttring(0),cutstring(1)等等什么都没有显示出来。 谁能帮忙? 非常感谢!!!!!!!

Excel VBA结合了行而不会丢失

我需要在Excel表格上循环,然后合并它们。 基本上我一次比较1行,如果他们遇到了我合并(合并?)他们的论点。 我想让它在数据匹配的地方我们什么都不做,如果有一个null填充空白,如果数据不同,用逗号分隔符连接它。 以下是我正在努力的代码段。 这是我第一次做VBA,我试图find解决scheme,但几天来一直在旋转车轮。 感谢先进的任何帮助。 编辑 罗恩·罗森菲尔德(Ron Rosenfeld)发现了我犯的一个错误,可能会增加一些困惑。 我在上面提到的论点是我的代码中的if语句。 我想查看单元格单号是否与单元格的值相匹配,并且单元格date是否与单元格的值匹配。 如果这两个值匹配,那么我想尽可能优雅地合并数据。 我要这个 成为 For i = 2 To myRows.Count 'compare the current row to the one below it while matches are found. if the row under it is no longer a match then exit the loop Do While doneComparing = False If Cells(i, ticketNumberCell.Column).Value […]