【发布时间】:2018-10-30 19:50:26
【问题描述】:
晚上好,
我正在为我的代码而苦苦挣扎。主要问题是不会自动计算公式。 公式由 VBA 插入(左函数) 我尝试了多种解决方案,但没有任何效果:
- 自动计算公式已开启
- 我试过 ActiveCell.NumberFormat = "General" - 不起作用
- 我试过 Application.Volatile - 不起作用
- 将文本记录到列并将单元格分配给“常规”(有效,但在我将代码放入脚本时无效)
你能帮我看看问题出在哪里吗?
Sub QualityCheck()
'załóż filtry, wyszukaj nagłowka "vendor" i posortuj
Rows("1:1").Select
Range("F1").Activate
Selection.AutoFilter
Selection.Find(What:="Vendor", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Worksheets(1).AutoFilter.Sort.SortFields.Clear
Worksheets(1).AutoFilter.Sort.SortFields.Add Key:=Range _
("K1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With Worksheets(1).AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'statystyki
'znajdz wszystkie te same numery vendora i ostatni aktywny ROW
i = 2
r = 2
koniec = Range("K" & Rows.Count).End(xlUp).Row
Columns("N:N").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Do Until Range("K" & r) < koniec
Do Until Range("K" & i) <> Range("K" & i + 1)
Range("N" & i).Select
Formula = "=left(M" & i & ";1)"
Range("N" & i).Formula = Formula 'OFFSET DODAC ALBO COS
ActiveCell.NumberFormat = "General"
i = i + 1 'i to bedzie nasz ostatni row
Loop
r = r + 1
Loop
Selection.TextToColumns Destination:=Range("N1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True
End Sub
【问题讨论】: