02. marts 2004 - 12:18Der er
7 kommentarer og 1 løsning
VBA gem fil når indhold forskellig "Nej"
Dette script har jeg fået tidligere fra eksperten, men vil gerne have tilføjet at hvis indholdet af de celler der skal eksporteres er = "Nej" så skal feltet ikke eksporteres: Sub Question279475() Dim rSheet As Worksheet Dim rUsedRange As Range Dim rRow As Range Dim rCell As Range Dim lFileNum As Long Dim sLine As String Dim sLine2 As String
Set rSheet = Sheets("Output") Set rUsedRange = rSheet.UsedRange ' If rSheet contains headings not to be show'n in file - then activate next line 'Set rUsedRange = rUsedRange.Offset(1, 0).Resize(rUsedRange.Rows.Count - 1) lFileNum = FreeFile
Open "C:\stykliste.txt" For Output As #lFileNum For Each rRow In rUsedRange.Rows sLine = "" For Each rCell In rRow.Cells sLine = sLine & Trim(CStr(rCell.Value)) & "," Next rCell sLine2 = Mid(sLine, 1, Len(sLine) - 1) Print #lFileNum, sLine2 Next rRow Close #lFileNum
'Clean up Set rSheet = Nothing Set rUsedRange = Nothing Set rRow = Nothing Set rCell = Nothing End Sub
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Kopier det her ind i stedet for blokken med Open....Close #lFileNum. Det burde virke...
Open "C:\stykliste.txt" For Output As #lFileNum For Each rRow In rUsedRange.Rows sLine = "" For Each rCell In rRow.Cells If CStr(rCell.Value) <> "Nej" Then sLine = sLine & Trim(CStr(rCell.Value)) & "," End If Next rCell sLine2 = Mid(sLine, 1, Len(sLine) - 1) Print #lFileNum, sLine2 Next rRow Close #lFileNum
Prøv at rette det til - (det er lavet i hånden og ikke efterprøvet!): Open "C:\stykliste.txt" For Output As #lFileNum For Each rRow In rUsedRange.Rows sLine = "" For Each rCell In rRow.Cells If CStr(rCell.Value) <> "Nej" Then sLine = sLine & Trim(CStr(rCell.Value)) & "," End If Next rCell If Len(sline) > 0 Then 'skal ikke skrive en tom linie sLine2 = Mid(sLine, 1, Len(sLine) - 1) 'fjerner sidste komma i linien Print #lFileNum, sLine2 End If Next rRow Close #lFileNum
For at sikre at du altid lukker din fil - lige gyldigt hvad der sker - kan du indsætte en meget simpel fejlhandler sådan her: Efter alle dim'erne indsætter du linien: On Error Goto Fejl I stedet for linien: Close #lFileNum indsætter du flg. stump kode Fejl: If Err.number <> 0 Then MsgBox "Der skete en fejl" 'Ved at bruge Err.Source, Err.Description mv End If 'kan man få suppl. oplysninger om fejlen Close #lFileNum
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.