![](/img/trans.png)
[英]Remove Workbook_Open Code In the copy saved with Save As from VBA
[英]VBA code to update a column on Workbook_Open
我一直在摸索一些VBA,以改进我们在工作场所使用的请求跟踪程序,十年前在Highschool完成了一些VB.NET。 我被困时尝试通过谷歌搜索来寻找答案的尝试和错误对我很有帮助,但我无法终生明白这一点...
打开工作簿以更新特定列中的单元格时,我想运行一些代码。 我让它在Worksheet_Change事件上起作用,但是那样会经常运行它,并且随着记录数量的增加,我担心它会使速度变慢。
我的问题是,当我不在工作表代码中时,我不知道引用该列的语法。 我的(尝试)尝试如下:
Private Sub Workbook_Open()
If ThisWorkbook.Sheets("2016").Columns(10).Value = "x" Then
ThisWorkbook.Sheets("2016").Columns(11).Value = Application.WorksheetFunction.NetworkDays(ThisWorkbook.Sheets("2016").Columns(7).Value, Date) - 1
End If
End Sub
这个想法是,如果J列包含x,则K列应显示G列中的值(记录了请求的日期)和今天的日期之间的工作天数,以便显示请求尚未完成的时间
不需要宏,可以使用以下公式完成
=IF(J1="x",NETWORKDAYS(G1,TEXT(NOW(),"mm/dd/yyyy"))-1)
如果您只想通过宏完成操作,希望代码能对您有所帮助:)
Private Sub Workbook_Open() l = Sheets("2016").Columns(10).End(xlDown).Row For c = 1 To l If Cells(c, 10).Value <> "" Then a = Sheets("2016").Cells(c, 7).Value b = Application.WorksheetFunction.Text(Now(), "mm/dd/yyy") If ThisWorkbook.Sheets("2016").Cells(c, 10).Value = "x" Then ThisWorkbook.Sheets("2016").Cells(c, 11).Value = WorksheetFunction.NetworkDays(a, b) - 1 End If End If Next c End Sub
如果要寻址特定列中的任何单元格,请使用单元格(row_no,col_no)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.