.replace в VB VSTO добавить в Excel - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь найти в книге Excel конкретные значения символов и заменить их другими значениями символов.

Я могу сделать это в VBA в Excel, но я пытаюсь кодировать надстройку. в VS 2017 с VSTO.

Мой код VBA, который работает:

Sub charFix(control As IRibbonControl)

Cells.Replace What:="^", Replacement:=Chr(11), LookAt:=xlPart, SearchOrder _
    :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Cells.Replace What:=Chr(10), Replacement:=Chr(11), LookAt:=xlPart, SearchOrder _
    :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Cells.Replace What:=Chr(13), Replacement:="", LookAt:=xlPart, SearchOrder _
    :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

End Sub

Вот как я пытаюсь это сделать, и это довольно неправильно, хаха. Но я не получаю ошибки компиляции, поэтому я потерян.

Private Sub charKill_Click(sender As Object, e As RibbonControlEventArgs) Handles charKill.Click

        Dim ActiveWorkSheet As Microsoft.Office.Interop.Excel.Worksheet =
            Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets(1)
        Dim worksheet As Microsoft.Office.Tools.Excel.Worksheet =
            Globals.Factory.GetVstoObject(ActiveWorkSheet)
        Dim cellA1 As Excel.Range = ActiveWorkSheet.replace(Chr(10), Chr(11), Excel.XlLookAt.xlPart, Excel.XlSearchOrder.xlByRows, False, , False, False)

End Sub

Я уверен, что все до 3-го утверждения Dim является правильным, и я уверен, что все из .replace, on является правильным ... Я думаю, проблема в том, как я пытаюсь это назвать.

Любая помощь будет принята с благодарностью.

Спасибо!

1 Ответ

0 голосов
/ 28 июня 2018
Private Sub charKill_Click(sender As Object, e As RibbonControlEventArgs) Handles charKill.Click

    Dim activeWorkSheet As Microsoft.Office.Interop.Excel.Worksheet =
        Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets(1)
    Dim workSheet As Microsoft.Office.Tools.Excel.Worksheet =
        Globals.Factory.GetVstoObject(activeWorkSheet)
    Dim workRange As Excel.Range = workSheet.Cells

    workRange.Replace(vbLf, vbVerticalTab, SearchOrder:=2, MatchCase:=True)
    workRange.Replace("^", vbVerticalTab, SearchOrder:=2, MatchCase:=True)
    workRange.Replace(vbCr, "", SearchOrder:=2, MatchCase:=True)

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...