我试图运行一个macros,将删除列中不包含特定值的行。这是我的代码: Sub deleteRows() Dim count As Integer count = Application.WorksheetFunction.CountA(Range("AF:AF")) Dim i As Integer i = 21 Do While i <= count If (Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("OSR Platform", Range("B" & i))) = False) Then If (Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("IAM", Range("B" & i))) = False) Then Rows(i).EntireRow.Delete i = i – 1 count = count – 1 End If End If i […]
我尝试在我的代码中插入一个范围,但我没有运气。 我希望能够在vba中有一个脚本来“保存”特定的表格或特定的范围为pdf。 任何帮助将非常感激。 这是我一直在努力: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "c:\Book1.pdf", Quality:= _ xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ OpenAfterPublish:=True 谢谢,
这是奇怪的…有人有一些知识或可以找出为什么发生这种情况? 在过去,我能够给Excel范围分配一组公式数组( 范例 Range("A1:A1000") = ArrayOfFormulas )。 这是工作正常和快速 ( 非常 快 )相比,分配逐个单元格( 例如单元格: Range("A" & i).Formula=ArrayOfFormula(i)在一个循环内,慢! )。 现在我正在使用Excel 2013,当试图将存储在string数组中的公式存储到Excel范围时,它不起作用(Excel中显示的是公式,而不是下面图片的左侧部分)不幸的是我不能检索旧的代码进行比较。 例如,以下代码在范围A1到A1000中显示“= 1 + 2”而不是“3”。 Sub AssignFormulas_1() Dim i as Long Dim FORML_ARRAY(1 To 1000, 1 To 1) As String For i = 1 To 1000 FORML_ARRAY(i, 1) = "=1+2" Next i Range("A1:A1000").Formula = FORML_ARRAY '<- Don't […]
我有一些VBA和批处理脚本,从某些开关中读取Mac Adress Table,并将其导入到Excel中进行格式化。 但是文本对于默认单元格宽度来说太长了。 是否有可能改变显示的单元格宽度? (当说到显示的单元格宽度我的意思是: 这个 )
我试图删除Excel中的多个列的Excel。 我从伊利诺伊州统计分析中心下载关于毒品逮捕的数据。 http://www.icjia.org/public/sac/index.cfm?metasection=forms&metapage=rawMetadata&k=170 我想要删除的每一列都是三列相隔。 例如: 亚当斯县伊利诺伊州香槟县伊利诺伊州估计|百分比| 误差的边际百分比|估计保证金| 估计|百分比|错误的百分比 d | E | F | G | H | I |Ĵ 我只想删除所有列的错误百分比 这是我的微: Sub deleteCol() Columns("H,J").Delete End Sub 我不断收到运行时间'13:types不匹配错误 有什么build议么?
我正在一个Excel文件与几个潜艇,这是相互独立的。 但是他们仍然始终使用相同的variables。 因此,我想在全球范围内定义这个variables,但是我很容易find的只是在全局范围内进行声明。 我该怎么做,我也可以从一开始就直接填充variables值? 是否有可能从一开始就定义variables,而不必写一个子类,如下面的例子? (我相信这是不可能的,或者我错了吗?) 我将不胜感激您的帮助! 托马斯 Public s1, s2, s3 As Worksheet Public array1, array2 As Variant s1 = ThisWorkbook.Worksheets("Sheet 1") s2 = ThisWorkbook.Worksheets("Sheet 2") s3 = ThisWorkbook.Worksheets("Sheet 3") array1 = Array(3, 5, 6, 7, 5) array2 = Array(8, 9, 10, 11, 12) Sub code1() … End Sub Sub code2() … End Sub
如何将表单的TextBox对象传递给方法? 以下代码发出exception。 Private Sub DoSmthWithTextBox(ByRef txtBox as TextBox) txtBox.BackColor = vbRed End Sub Private Sub TextBox1_Change() DoSmthWithTextBox Me.TextBox1 End Sub 当DoSmthWithTextBox Me.TextBox1从TextBox1传入String而不是对象引用时出现问题。 如何将TextBox对象传递给DoSmthWithTextBox方法?
问题是我无法获得input到variables“tblName”中的表名,而是使用了名为“tblName”的正确命名的数据库。 有没有办法在“tblName”中select名称,或者在用户input的名称创build名称后用某种方法更改名称? Private Sub CreateDatabaseFromExcel() Dim dbConnectStr As String Dim Catalog As Object Dim cnt As ADODB.Connection Dim dbPath As String Dim tblName As String 'Set database name in the Excel Sheet dbPath = ActiveSheet.Range("B1").Value 'Database Name tblName = ActiveSheet.Range("B2").Value 'Table Name dbConnectStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath & ";" 'Create new database using name […]
我不是Excel或VBA专家,但是我想将当前的Excel公式插入到使用VBA的单元格中。 目前的Excel公式: =IF(OR(ISNUM(D570)=FALSE;ISNUM(D573)=FALSE);"";IF(C573="Total";D573-D570;"")) VBA公式: ActiveSheet.Range("a" & ActiveSheet.Rows.Count).End(xlUp).Offset(2, 12).Value = "=IF(OR(ISNUM(R[-3]C[-9])=FALSE;ISNUM(R[0]C[-9])=FALSE);'';IF(R[0]C[-10]='Total';R[0]C[-9]-R[-3]C[-9];''))" 它不工作…有人可以帮助我吗?
我有一个Excel工作簿是有很多绿色的“错误检查”三angular形。 有没有办法使用Excel VBA,当我打开工作簿时可以closures它。