Avatar billede kim1a Ekspert
16. april 2021 - 09:02 Der er 1 kommentar og
1 løsning

VBA - select vs "bare at udføre"

Hej alle
Som semi autodidakt er jeg aldrig blevet skarp til at forstå select vs at udføre uden at select'e.
Jeg har nu en kørsel som virker lidt omstændig, omend det mere er for læringens skyld at jeg nu spørger:
 
For i = 1 To Sheets.Count
    strCaseSheetName = Sheets(i).Name
        Select Case strCaseSheetName
        Case Is = "Arknavn2"
            Sheets(i).Select
            Sheets(i).Cells.Select
            Sheets(i).UsedRange.Value = Sheets(i).UsedRange.Value 'remove formulas from the sheet
        Case Is = "Arknavn3"
            Sheets(i).Select
            Sheets(i).Cells.Select
            Sheets(i).UsedRange.Value = Sheets(i).UsedRange.Value 'remove formulas from the sheet
        Case Else
        End Select
    Next i

Jeg looper igennem arkene og vælger to ark som skal have fjernet alle formler, men burde jeg ikke kunne skrive det i en linje i stedet for tre?

I sin helhed ønsker jeg at fjerne formler fra to ark som kan gå ud til kunder, og derefter slette alle de andre ark for at skabe en projektmappe kun med de offentlige priser i, men jeg har nu to select case kørende, da jeg først skal have omdannet formler til værdier.
Jeg forsøgte tidligere bare at lave alle ark på een gang til formler, men den virkede ikke (hvorfor mon ikke?):

ActiveWorkbook.Sheets.Select
Cells.Select
Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False

Anyway - to forståelsesspørgsmål som jeg gerne vil lære.
Avatar billede kim1a Ekspert
18. december 2021 - 19:47 #1
Jeg må nok desværre lukke.
Avatar billede thomas_bk Ekspert
26. december 2021 - 11:39 #2
Angående at konvertere til værdier bruger jeg nedenstående

Sub Convert_to_values()

' Convert everything to values in all sheets

Dim sh As Worksheet

Application.ScreenUpdating = False
Application.Calculation = xlManual

For Each sh In ActiveWorkbook.Worksheets
        With sh.UsedRange
    .Value = .Value
    End With
Next sh

Application.Calculation = xlAutomatic
Application.ScreenUpdating = True

End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester