我是巴西一家工业公司的实习生,而且我正在使用excel.几天前我刚刚开始和VBA一起玩,我很开心它可以为我做很多事!
我没有强大的编程背景,所以我基本上都在学习.代码工作正常,从开始到结束只需不到15秒.我不打扰时间,但如果可以改进那就太好了.
我的主要目标是保持代码简单有效.我将在接下来的几个月内离开公司,我希望它很容易保持和使用.我所要求的是一种更好的方式来编写我的代码,以便其他人可以更容易理解,如果可能的话(当然是!)花更少的时间.
我的代码删除了当前工作簿中的4张内容,然后从其他4个已关闭的工作簿中复制更新的数据.然后关闭一切.:)数据是关于日常生产的,他们的名字是葡萄牙语,抱歉.
Sub CopiarBase()
'
' Atalho do teclado: Ctrl+q
'
' Variables
Dim MyCurrentWB As Workbook
Dim BMalharia As Worksheet
Dim BBeneficiamento As Worksheet
Dim BEmbalagem As Worksheet
Dim BDikla As Worksheet
Set MyCurrentWB = ThisWorkbook
Set BMalharia = MyCurrentWB.Worksheets("B-Malharia")
Set BBeneficiamento = MyCurrentWB.Worksheets("B-Beneficiamento")
Set BEmbalagem = MyCurrentWB.Worksheets("B-Embalagem")
Set BDikla = MyCurrentWB.Worksheets("B-Dikla")
'Clean all the cells - Workbook 1
Dim Malharia_rng As Range
Set Malharia_rng = BMalharia.Range("A2:CN" & BMalharia.Cells(Rows.Count, 1).End(xlUp).Row)
Malharia_rng.ClearContents
Dim Ben_rng As Range
Set Ben_rng …Run Code Online (Sandbox Code Playgroud) 我试图在公式中插入2个变量.尽管他们出现在引号内.
fase1 = Cells(2, diffdate_ac + 4).Address(RowAbsolute:=False, ColumnAbsolute:=False)
prod1 = Cells(4, diffdate_ac + 4).Address(RowAbsolute:=False, ColumnAbsolute:=False)
Run Code Online (Sandbox Code Playgroud)
Fase1指AG2和Prod1至AG4.
Range("B3").Formula = "=SUM((SUMIFS(ben_quant,ben_dia,R[-1]C,ben_fase, " & fase1 & ",ben_linha," & prod1 & "))
Run Code Online (Sandbox Code Playgroud)
它是公式的一部分."&fase 1&"正在给我'AG2',而'&prod 1&'正在返回'AG4'.是的,它们都在公式内的引号内,如图所示:
我想删除那些单引号,因为这样的公式不是指那些单元格.
此命令的完整部分代码
'Prints an array of dates
Dim startac2 As Long, finishac2 As Long
Dim datearray3 As Variant, y As Long
finishac2 = CLng(DateValue(lastac))
startac2 = CLng(DateValue(firstac))
ReDim datearray3(finishac2 - startac2 + 1)
For y = 0 To finishac2 - startac2
datearray3(y) = startac2 + y
Next
diffdate_ac = …Run Code Online (Sandbox Code Playgroud)