我正在尝试使Excel单元格看起来像button,而不实际插入button。 For Each myCell In Range(BoardSize) With myCell .Borders.LineStyle = xlContinuous .Borders.Weight = xlThick .Borders.Color = RGB(110, 110, 110) .Interior.Color = RGB(180, 180, 180) End With myCell.Borders(xlEdgeTop).Color = RGB(255, 255, 255) myCell.Borders(xlEdgeLeft).Color = RGB(255, 255, 255) Next myCell 它适用于一个单元格: 但在一个很大的范围内,它看起来像这样: 我想要的是一些东西,而不使用实际的命令button,如:
作为VBA的初学者,我正在努力学习这个内容的大部分特别,所以请原谅我的灰尘。 我有一个子程序,我正在通过阅读文本文件中的行。 每行都用空格分隔,作为文本标识符。 我需要将每行分割为multidimensional array。 Sub ReadLines() Dim LineValues() As String Dim row As Long, col As Long Dim DataArray() As String Dim TempArray() As String Dim FileContent As String Dim FilePath As String FilePath = "c:\mytextfile.txt" row = 0 TextFile = FreeFile Open FilePath For Input As TextFile FileContent = Input(LOF(TextFile), TextFile) Close TextFile […]
我们有一个Excel电子表格,用于为潜在客户创build报价。 通过使用VBA,它生成PDF并通过电子邮件将其发送给客户。 它将客户的电子邮件地址从用户填写客户详细信息的主表单元格中取出。 几个星期前,即使在主表单上填写了客户的电子邮件地址,也不会填写Outlook的“收件人”字段。 当我们改变这个电子表格中的任何东西,包括代码时,我们把它保存为一个新的“修订”(保留所有以前的修订)。回到以前的修订,我现在发现它们都没有工作。 这很奇怪,因为他们之前确实如此。 我正在使用Office 2016(虽然我刚刚升级,但是这个问题是最近的)。运行Office 2013的计算机也无法正常工作。 但是,运行Office 2007的计算机却能正常工作。 现在有什么想法,为什么这是一个问题,为什么它只是某些版本的Office的问题? 这是代码片段: Private Sub send_as_pdf_Click() On Error GoTo ErrMsg Dim strPath As String, strFName As String Dim OutApp As Object, OutMail As Object strPath = Environ$("temp") & "\" strFName = Sheets("Quotation").Name & " " & Range("G18") & ".pdf" Sheets("Quotation").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ strPath & […]
我无法调用名称存储在string数组中的macros。 我附上了代码。 Option Explicit Option Compare Text Dim i, Ro As Integer Public Sub Universal_Macro() Dim Col(10) As Integer Dim macro_name(10) As String Ro = ActiveCell.Row i = 1 For i = 1 To 10 Call Mac_Sched(Col(), macro_name()) Next End Sub Sub Mac_Sched(Col() As Integer, Internal_Array() As String) Cells(Ro, Col(i)).Select Call Internal_Array(i) End Sub 在sub […]
我正在使用三维数组,如果我可以命名数组维度,它将是整洁的。 在下面的例子中的问号给我的想法,这是可能的。 是的,如果是的话,它是如何工作的? 我似乎无法在任何地方find它。
我希望我的WB在闲置时间之后触发一些代码(自然而然地由我设置)。 我只能find代码来closures静止时间后的WB,但我希望代码做一些其他的事情,不同于closuresWB。 我发现这个closuresWB的代码: 此工作簿模块: Private Sub Workbook_BeforeClose(Cancel As Boolean) stop_Countdown ThisWorkbook.Save End Sub Private Sub Workbook_Open() start_Countdown End Sub Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) stop_Countdown start_Countdown End Sub Private Sub Workbook_SheetCalculate(ByVal Sh As Object) stop_Countdown start_Countdown End Sub Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _ ByVal Target As Excel.Range) stop_Countdown […]
我有一个二维string由行分隔,并在每行由值分隔。 所以这是一个以逗号分隔的string,在每行末尾有一个EOL标记。 例: val1, val2, val3 … valn [EOL] val1, val2, val3 … valn [EOL] … val1, val2, val3 … valn [EOL] 如果我用[EOL]创build一个循环来分割()每行,然后另一个内部循环来分割()每个值的','然后写每个值一次一个工作表中的单元格,它永远需要,所以我正在寻找更有效的解决scheme。 是否有可能将stringparsing为二维数组/变体,然后将整个事件写入一个命名的范围?
我知道sendkeys被认为是坏的和危险的,但我正在努力弄清楚如何最好地处理VBA相比前端Excel的问题。 我写了一个个人macros来设置一个未知的数据透视表来重复所有的标签,设置为表格,sorting升序字段列表,最后隐藏小计。 一切工作正常,除了小计需要一个循环,当有大量的数据这个循环可能需要很长的时间。 奇怪的是,如果你只是从前端控制closures小计,这是瞬间的。 因此,使用Sendkey的速度将比实际循环更快。 (Sendkey正在按下热键来执行closures小计) Sub formatpivotTable() Dim pivotName As Variant Dim pf As pivotField On Error Resume Next pivotName = ActiveCell.PivotTable.Name If pivotName = "" Then MsgBox "You did not select a pivot table" Exit Sub End If ActiveSheet.PivotTables("" & pivotName & "").ManualUpdate = True With ActiveSheet.PivotTables("" & pivotName & "") .RepeatAllLabels (xlRepeatLabels) […]
我写了下面的代码尝试上传到两个不同的服务器,一个通过FTP和一个通过SFTP。 我想知道是否有一个更好的方式来通过SFTP上传,因为我有它的当前方法不会触发FTP错误,如果它失败的任何部分。 我想一个解决办法,我想有的是他们两个将输出logging到一个文本文件,然后从那里我可以看到什么是手动错误,如果我想设置一个简单的读取日志,检查错误,如果x做y … On Error GoTo Err_FTPFile ' UPLOAD FIRST FILE VIA FTP 'Build up the necessary parameters sHost = "ftp.server.com" sUser = "user@server.com" sPass = "password" sSrc = """" + Environ("TEMP") + "\" + file + ".txt" + """" sDest = "/remote/folder/" 'Write the FTP commands to a file iFNum = FreeFile sFTPCmds1 […]
我有一个表格和macros,直到最近工作的电子表格。 我第一次看到描述的行为是我第一次尝试在Excel 2016(Windows 10)中使用这个特殊的function,但我不确定这是什么原因。 我遇到的问题是以下行 Worksheets("Label Template – 100X150").ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=pdfFilePath, Quality:=xlQualityMinimum, _ IncludeDocProperties:=False, _ IgnorePrintAreas:=False, OpenAfterPublish:=True 来自以下macros: Sub PDFLabelsSheet() 'On Error GoTo errHandler 'enter name and select folder for file strFile = "Labels_PrintGroup-" & lstPrintGroup.Value _ & "_" _ & Format(Now(), "yyyy-mm-dd\_hhmm") _ & ".pdf" strFile = ThisWorkbook.Path & "\" & strFile Worksheets("Label […]