Jump to content

Excel - Copy empty string brings up length "2"


Recommended Posts

Hello,

I have a little problem working with AutoIT and Excel:

I need to copy some values from an Excel List and I want the script to loop until it copies an empty cell.

; copy value in cell
Send("{CTRLDOWN}")
Send("{c}")
Send("{CTRLUP}")

$value = ClipGet()

; go down one row
Send("{DOWN}")

; loop through list until reaching an empty cell
while $value <> ""

     ; work with value
     ; ......

    ; copy value in cell
    Send("{CTRLDOWN}")
    Send("{c}")
    Send("{CTRLUP}")
    $value = ClipGet()
    ; go down one row
    Send("{DOWN}")

WEnd

This script does not work, because it does not recognize the content of an empty cell as "", so the comparison with <> does not stop the loop.

I tried to find out the problem: if I make a message box with StringLen($value) it shows me that the length of the empty cell is "2". When I try StringLen("") it gives me the value 0.

Anyone any idea why the length of the empty string is 2 and not 0?

Thank you very much!

Link to comment
Share on other sites

Why don't you use Excel UDF which comes with AutoIt? Use _ExcelReadCell and _ExcelWriteCell to copy a cell.

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

  • Moderators

jheinze,

At a guess it is a @CRLF character (or 2 characters to be absolutely correct). :doh:

Try this and see if it works: :bye:

while $value <> @CRLF

But why not use the Excel UDF to do this? :oops:

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...