Tag: vba

VBA范围从string

这很愚蠢,但是我在这个简单的陈述中被卡住了一段时间: Dim range1 as Range Dim mysheet as String Dim myrange as String mysheet = "Sheet1" range = "A1:A10" range1 = Worksheets(mysheet).Range(myrange) 我已经testing了在互联网上find的所有解决scheme,例如这个 , 这个和这个 ,但没有。 所有这一切给我错误:1004“应用程序定义错误”或“对象variables或未设置”。 我已经尝试了以下内容: range1 = ThisWorkbook.Worksheets(mysheet).Range(myrange) range1 = ActiveWorkbook.Worksheets(mysheet).Range(myrange) range1 = Sheets(mysheet).Range(myrange) (and the combinations above) range1 = Worksheets(mysheet).Range(Cells(1,1), Cells(1,10)) (and the combinations with This/Active workbook) 和 with This/ActiveWorkbook range1 […]

想要Excel中的VBA读取非常大的CSV并创buildCSV的一小部分的输出文件

我有一个120万条文本logging的csv文件。 字母数字字段用引号括起来,date/时间或数字字段不是。 例如“Fred”,“Smith”,01/07 / 1967,2,“7,High Street”,“Anytown”,“Anycounty”,“LS1 7AA” 我想要做的是在Excel中编写一些VBA(或多或less是我可以使用的唯一合适的工具),通过logging来读取CSVlogging,执行检查(就像在最后一个字段上发生的那样,邮政编码),然后将1.2mlogging的一小部分输出到新的输出文件。 我知道如何打开这两个文件,读取logging,做我需要做的数据并写出来(我只是输出inputlogging的前缀表示exceptiontypes) 我不知道的是如何正确parsingVBA中的CSV。 我不能做一个简单的文本扫描和search逗号,因为文本有时有逗号(因此为什么文本字段是文本分隔) 有没有一个非常棒的命令能让我快速从logging中的第n个字段获取数据? 我想要的是s_work =字段(s_input_record,5)其中5是CSV中的字段编号…. 非常感谢,C

如何使用vba在Excel中locking单元格中的数据

我想阻止其他人使用VBA编辑Excel工作表中的单元格内容。 是否有可能做到这一点?

使用Excel VBA重命名文件

这是我需要做的。 我在Excel表中有这两列。 用文件名称。 第一列有当前的文件名,第二列有我想要文件重命名的名称。 我需要使用这个,因为在重命名中没有任何模式。 例如,下面可能是一组文件… Current Name > Rename To ————————— Abc.jpg > Dinner.jpg Xyz.jpg > Driving.jpg 123.jpg > Sunset.jpg 我知道这应该很容易做到这一点在VBA,但不完全确定如何。 任何帮助将非常感激。

作为string的Excel单元格值不会以stringforms存储

我不能在这里获取这个代码来抓取单元格内容并以stringforms存储。 我得到一个双: 54.6666666667而不是N03:DM:示例单元格内容)。 如果我使用Cstr(Sheet1.Cells(i, 5).Value)我仍然得到相同的结果。 任何帮助,将不胜感激。 Option Explicit Private Sub GetAddress() Dim varAdd As String Dim i As Integer For i = 2 To 327 If varTag = Sheet1.Cells(i, 2).Value Then varAdd = Sheet1.Cells(i, 5).Value varAdd = Left(varAdd, 7) Sheet3.Cells(incR, 2).Value = varAdd Exit For End If Next i End Sub 工作表截图

每个工作表循环的Excel VBA

我正在处理代码,基本上遍历我的工作簿中的每个工作表,然后更新列宽。 下面是我写的代码; 我没有收到任何错误,但实际上也没有做任何事情。 任何帮助是极大的赞赏! Option Explicit Dim ws As Worksheet, a As Range Sub forEachWs() For Each ws In ActiveWorkbook.Worksheets Call resizingColumns Next End Sub Sub resizingColumns() Range("A:A").ColumnWidth = 20.14 Range("B:B").ColumnWidth = 9.71 Range("C:C").ColumnWidth = 35.86 Range("D:D").ColumnWidth = 30.57 Range("E:E").ColumnWidth = 23.57 Range("F:F").ColumnWidth = 21.43 Range("G:G").ColumnWidth = 18.43 Range("H:H").ColumnWidth = 23.86 Range("i:I").ColumnWidth = 27.43 Range("J:J").ColumnWidth […]

将范围从A1返回到最后一个使用的单元格

我想select电子表格中的所有行和列。 macros需要是dynamic的,因为每次调用macros时列和行的数量都会变化。 它还需要能够考虑空白的行和列。 这个子程序完成了部分过程: Sub FindLastCell() Cells.Find(What:="*", After:=[A1], SearchDirection:=xlPrevious).Select End Sub 它find并select电子表格中最后一个单元格。 现在我已经find了电子表格中最后一个单元格,如何select单元格A1作为范围的LastCell?

调用具有多个参数的Sub时,VBA返回错误

我想弄清楚为什么VBA返回一个错误(Compile error: Expected: =)当我打电话给一个Sub并提供多个参数。 任何帮助将不胜感激。 Sub customerController(cleanStructure As Boolean, firstCol As Integer, latCol As Integer, _ lngCol As Integer, Optional startRow As Long, Optional endRow As Long) Dim i As Long, j As Long, n As Long If (cleanStructure = False) Then 'customer data type If (startRow = "") Then i = 1 If (endRow […]

Excel的工作表密码保护如何工作

这段代码已经在networking上浮动了好几年 – 显然它能够提供一个密码来解密你不知道密码的excel电子表格。 http://www.theofficeexperts.com/VBASamples/Excel02.htm 我对这是如何工作感兴趣,但我似乎无法解决这个问题。 我假设它是以一定的数值​​encryption的(网上的一些地方说会给你原来的密码或者另一个可以工作的),就像公钥一样 – 你可以有100个公共密钥,所有的私人密钥都可以工作。 对我来说,它似乎是创build整型variables,并填充一个特定的数字,然后将该数字转换成相关的字符。 这些总是不一样吗? 如果有的话,Excel保护是否有“主密码”? 谢谢大家! 编辑:我已经注意到在我发布的示例代码中n = 32到126 。 交叉引用一个ASCII表,似乎是从空间到代字符的所有字符。 这是一种字典攻击,我不明白,因为语法?

是否有可能填充行号符合一定的标准没有循环的数组?

我想在VBA中填充一个只有满足一定条件的行的行号。 我想最快的方法可能(例如,像RowArray = index(valRange=valMatch).row ) 以下是(慢)范围循环的代码。 Current Code Sub get_row_numbers() Dim RowArray() As Long Dim valRange As Range Dim valMatch As String Set valRange = ActiveSheet.Range("A1:A11") valMatch = "aa" ReDim RowArray(WorksheetFunction.CountIf(valRange, valMatch) – 1) For Each c In valRange If c.Value = valMatch Then RowArray(x) = c.Row: x = x + 1 Next c End […]