вы можете попробовать это:
Sub RecoverData()
Application.ScreenUpdating = False
Dim x As Workbook
Dim t As Range
'## Open both workbooks first:
Set x = Workbooks.Open(Application.ActiveWorkbook.Path & "\data.xlsx")
With x.Sheets("Feuil1") ' reference source sheet
Set t = .Rows(1).Find("Vendor name", lookat:=xlWhole) ' try searching wanted header in referenced sheet first row
If Not t Is Nothing Then ' if found
.Rows(1).AutoFilter Field:=t.column, Criteria1:=Array("a*", "b"), Operator:=xlFilterValues ' filter data
Intersect(.UsedRange, t.EntireColumn).SpecialCells(xlCellTypeVisible).Copy _
Destination:=ThisWorkbook.Sheets("Feuil2").Range("A1") '<<== paste filtered column to destination sheet A1 cell (instead of B1), to match your subsequent removeduplicates call
ThisWorkbook.Sheets("Feuil2").Range("A1").CurrentRegion.RemoveDuplicates Columns:=1, Header:=xlYes
.AutoFilterMode = False
Else
MsgBox "Column Name Not Found"
End If
End With
x.Close
Application.ScreenUpdating = True
End Sub
Многострочная лямбда в F # is просто
(fun args ->
lots
of
code
here
)
Весь код будет выглядеть примерно так
open System.IO
type MyClass() as this =
let Render(tw : TextWriter) =
this.Tag(fun() ->
tw.WriteLine("line1")
tw.WriteLine("line2")
)
this.Tag(fun(value : string) ->
tw.WriteLine("line1")
tw.WriteLine(value)
, "a"
)
member this.Tag(action) =
action()
member this.Tag(action, x) =
action(x)
, при условии, что я не допустил ошибок транскрипции. (Я использовал типы функций F #, а не делегаты Action в общедоступном интерфейсе.)
Если все, что вы хотите сделать, это написать многострочные лямбда-выражения, вы можете связать несколько операторов вместе, используя оператор точки с запятой в скобках. Пример:
(fun () -> (write_line "line 1" ; write_line "line 2"))
и
(fun val -> (write_line "line 1" ; write_line val))
Хотя второй пример, который я привел, работает, только если тип val - string.
Предостережение: Я не знаю особенностей F #. Я пишу это из фона Objective Caml. Языки очень похожи, но могут быть некоторые различия, которые делают моё предположение немного неверным. Кроме того, сейчас у меня нет машины с интерпретатором ocaml или F #, поэтому я не могу проверить эти фрагменты, чтобы убедиться, что они работают.