Obecnie mam to kopiowanie całego arkusza roboczego z pliku A. do pliku B. niektóre arkusze po prostu muszą skopiować wartości i nie mają formuł. Jest jeden arkusz roboczy, który muszę skopiować format wraz z formułami, ale nie chcę, aby formuły odwoływały się do oryginalnego pliku. chcę, aby odwoływał się do arkuszy w nowym pliku. Jak mogę skopiować arkusz/formuły i nie odwołując się do oryginalnego pliku.Skopiuj formuły excel bez odniesienia do poprzedniego arkusza w vb.net.
Poniżej mam kod, który kopiuje arkusz roboczy, a następnie zastępuje formuły tylko wartościami dla jednorazowych arkuszy kalkulacyjnych.
xlWorksheetSource = xlWorkbookSource.Sheets(sheet.Name)
xlWorksheetSource.Copy(After:=xlWorkbookDestination.Worksheets(xlWorkbookDestination.Worksheets.Count))
xlWorkDestSource = xlWorkbookDestination.Worksheets(xlWorkbookDestination.Worksheets.Count)
ws = xlWorkDestSource
With ws.UsedRange
.Copy()
.PasteSpecial(Paste:=XlPasteType.xlPasteValues, _
Operation:=XlPasteSpecialOperation.xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False)
xlApp.CutCopyMode = False
End With
Błąd podczas próby swoich pasteformulas rozwiązanie
.Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Me.Range("BE4")) Is Nothing Then
BE4 = Target.Value
If BE4 = "X" Then
Worksheets("Invoice 2").Visible = xlSheetVisible
Exit Sub
End If
If BE4 = "" Then
Worksheets("Invoice 2").Visible = xlSheetVeryHidden
Exit Sub
End If
End If
Jeśli formuły odwołujące się do oryginalnego pliku odwołują się do arkuszy skopiowanych do nowego pliku, można obejść problem, kopiując wszystkie odpowiednie arkusze w jednym egzemplarzu. Nie jestem pewien, co to jest odpowiednik vb.net, ale w VBA będzie to coś w stylu 'xlWorkbookSource.Sheets (Array (" Arkusz4 "," Arkusz2 "," Arkusz1 ")). Kopiuj po: = xlWorkbookDestination.Worksheets (xlWorkbookDestination.Worksheets.Count)) ' – YowE3K